internal ContainerRepositoryClient(Uri endpoint, string repository, ClientDiagnostics diagnostics, HttpPipeline pipeline, HttpPipeline authPipeline) { Endpoint = endpoint; Repository = repository; _clientDiagnostics = diagnostics; _acrAuthPipeline = authPipeline; _acrAuthClient = new AuthenticationRestClient(_clientDiagnostics, _acrAuthPipeline, endpoint.AbsoluteUri); _pipeline = pipeline; _restClient = new ContainerRegistryRepositoryRestClient(_clientDiagnostics, _pipeline, Endpoint.AbsoluteUri); _registryRestClient = new ContainerRegistryRestClient(_clientDiagnostics, _pipeline, Endpoint.AbsoluteUri); }
/// <summary> /// </summary> public ContainerRegistryClient(Uri endpoint, TokenCredential credential, ContainerRegistryClientOptions options) { Argument.AssertNotNull(endpoint, nameof(endpoint)); Argument.AssertNotNull(credential, nameof(credential)); Argument.AssertNotNull(options, nameof(options)); _endpoint = endpoint; _clientDiagnostics = new ClientDiagnostics(options); _acrAuthPipeline = HttpPipelineBuilder.Build(options); _acrAuthClient = new AuthenticationRestClient(_clientDiagnostics, _acrAuthPipeline, endpoint.AbsoluteUri); _pipeline = HttpPipelineBuilder.Build(options, new ContainerRegistryChallengeAuthenticationPolicy(credential, AcrAadScope, _acrAuthClient)); _restClient = new ContainerRegistryRestClient(_clientDiagnostics, _pipeline, _endpoint.AbsoluteUri); }
/// <summary> /// Initializes a new instance of the ContainerRegistryClient for managing container images and artifacts. /// </summary> /// <param name="registryUri">The URI endpoint of the container registry. This is likely to be similar /// to "https://{registry-name}.azurecr.io".</param> /// <param name="credential">The API key credential used to authenticate requests /// against the container registry. </param> /// <param name="options">Client configuration options for connecting to Azure Container Registry.</param> /// <exception cref="ArgumentNullException"> Thrown when the <paramref name="registryUri"/> or <paramref name="credential"/> is null. </exception> public ContainerRegistryClient(Uri registryUri, TokenCredential credential, ContainerRegistryClientOptions options) { Argument.AssertNotNull(registryUri, nameof(registryUri)); Argument.AssertNotNull(credential, nameof(credential)); Argument.AssertNotNull(options, nameof(options)); _registryUri = registryUri; _registryName = registryUri.Host.Split('.')[0]; _clientDiagnostics = new ClientDiagnostics(options); _acrAuthPipeline = HttpPipelineBuilder.Build(options); _acrAuthClient = new AuthenticationRestClient(_clientDiagnostics, _acrAuthPipeline, registryUri.AbsoluteUri); _pipeline = HttpPipelineBuilder.Build(options, new ContainerRegistryChallengeAuthenticationPolicy(credential, AcrAadScope, _acrAuthClient)); _restClient = new ContainerRegistryRestClient(_clientDiagnostics, _pipeline, _registryUri.AbsoluteUri); }
/// <summary> /// Initializes a new instance of the <see cref="ContainerRegistryClient"/> for managing container images and artifacts. /// </summary> /// <param name="endpoint">The URI endpoint of the container registry. This is likely to be similar /// to "https://{registry-name}.azurecr.io".</param> /// <param name="credential">The API key credential used to authenticate requests /// against the container registry. </param> /// <param name="options">Client configuration options for connecting to Azure Container Registry.</param> /// <exception cref="ArgumentNullException"> Thrown when the <paramref name="endpoint"/> or <paramref name="credential"/> is null. </exception> public ContainerRegistryClient(Uri endpoint, TokenCredential credential, ContainerRegistryClientOptions options) { Argument.AssertNotNull(endpoint, nameof(endpoint)); Argument.AssertNotNull(credential, nameof(credential)); Argument.AssertNotNull(options, nameof(options)); if (options.Audience == null) { throw new InvalidOperationException("ContainerRegistryClientOptions.Audience property must be set to initialize ContainerRegistryClient."); } _endpoint = endpoint; _registryName = endpoint.Host.Split('.')[0]; _clientDiagnostics = new ClientDiagnostics(options); _acrAuthPipeline = HttpPipelineBuilder.Build(options); _acrAuthClient = new AuthenticationRestClient(_clientDiagnostics, _acrAuthPipeline, endpoint.AbsoluteUri); string defaultScope = options.Audience + "/.default"; _pipeline = HttpPipelineBuilder.Build(options, new ContainerRegistryChallengeAuthenticationPolicy(credential, defaultScope, _acrAuthClient)); _restClient = new ContainerRegistryRestClient(_clientDiagnostics, _pipeline, _endpoint.AbsoluteUri); }