/// <summary> Initializes a new instance of <see cref="ChatThreadClient"/>.</summary> /// <param name="threadId"></param> /// <param name="endpoint">The uri for the Azure Communication Services Chat.</param> /// <param name="communicationTokenCredential">Instance of <see cref="CommunicationTokenCredential"/>.</param> /// <param name="options">Chat client options exposing <see cref="ClientOptions.Diagnostics"/>, <see cref="ClientOptions.Retry"/>, <see cref="ClientOptions.Transport"/>, etc.</param> /// <exception cref="ArgumentNullException"> This occurs when one of the required arguments is null. </exception> public ChatThreadClient(string threadId, Uri endpoint, CommunicationTokenCredential communicationTokenCredential, ChatClientOptions options = default) { Argument.AssertNotNull(threadId, nameof(threadId)); Argument.AssertNotNull(communicationTokenCredential, nameof(communicationTokenCredential)); Argument.AssertNotNull(endpoint, nameof(endpoint)); options ??= new ChatClientOptions(); Id = threadId; _clientDiagnostics = new ClientDiagnostics(options); HttpPipeline pipeline = CreatePipelineFromOptions(options, communicationTokenCredential); _chatThreadRestClient = new ChatThreadRestClient(_clientDiagnostics, pipeline, endpoint.AbsoluteUri, options.ApiVersion); }
/// <summary>Initializes a new instance of <see cref="ChatThreadClient"/> for mocking.</summary> protected ChatThreadClient() { _clientDiagnostics = null !; _chatThreadRestClient = null !; Id = null !; }