def _create_pipeline(self, credential, **kwargs): credential_policy = None if credential is None: raise ValueError("Parameter 'credential' must not be None.") if hasattr(credential, "get_token"): credential_policy = BearerTokenCredentialPolicy( credential, "https://cognitiveservices.azure.com/.default") elif isinstance(credential, AzureKeyCredential): credential_policy = AzureKeyCredentialPolicy( name="Ocp-Apim-Subscription-Key", credential=credential) elif credential is not None: raise TypeError( "Unsupported credential: {}. Use an instance of AzureKeyCredential " "or a token credential from azure.identity".format( type(credential))) config = self._create_configuration(**kwargs) config.transport = kwargs.get("transport") # type: ignore if not config.transport: config.transport = RequestsTransport(**kwargs) policies = [ config.headers_policy, config.user_agent_policy, RequestIdPolicy(**kwargs), config.proxy_policy, config.redirect_policy, config.retry_policy, credential_policy, config.logging_policy, TextAnalyticsResponseHookPolicy(**kwargs), DistributedTracingPolicy(**kwargs), HttpLoggingPolicy(**kwargs), ] return Pipeline(config.transport, policies=policies)
def __init__( self, endpoint: str, credential: "AzureKeyCredential", **kwargs: Any ) -> None: """ :param str endpoint: :param credential: :type credential: AzureKeyCredential :keyword str api_version: :rtype: None """ self._endpoint = endpoint self._credential = credential self._api_version = kwargs.pop('api_version', None) if credential is None: raise ValueError("Parameter 'credential' must not be None.") authentication_policy = AzureKeyCredentialPolicy( name=COGNITIVE_KEY_HEADER, credential=credential ) self._client = _BatchDocumentTranslationClient( endpoint=endpoint, credential=credential, # type: ignore api_version=self._api_version, sdk_moniker=USER_AGENT, authentication_policy=authentication_policy, **kwargs )
def __init__(self, endpoint: str, credential: "AzureKeyCredential", **kwargs: Any) -> None: self._client = FormRecognizer( endpoint=endpoint, credential=credential, sdk_moniker=USER_AGENT, authentication_policy=AzureKeyCredentialPolicy( credential, COGNITIVE_KEY_HEADER), **kwargs)
def _get_authentication_policy(credential): if credential is None: raise ValueError("Parameter 'self._credential' must not be None.") if isinstance(credential, AzureKeyCredential): authentication_policy = AzureKeyCredentialPolicy( credential=credential, name=constants.EVENTGRID_KEY_HEADER) if isinstance(credential, EventGridSharedAccessSignatureCredential): authentication_policy = EventGridSharedAccessSignatureCredentialPolicy( credential=credential, name=constants.EVENTGRID_TOKEN_HEADER) return authentication_policy
def test_azure_key_credential_policy_raises(): """Tests AzureKeyCredential and AzureKeyCredentialPolicy raises with non-string input parameters.""" api_key = 1234 key_header = 5678 with pytest.raises(TypeError): credential = AzureKeyCredential(api_key) credential = AzureKeyCredential(str(api_key)) with pytest.raises(TypeError): credential_policy = AzureKeyCredentialPolicy(credential=credential, name=key_header)
def __init__(self, endpoint, credential, **kwargs): # type: (str, AzureKeyCredential, Any) -> None self._endpoint = endpoint self._credential = credential self._client = FormRecognizer( endpoint=self._endpoint, credential=self._credential, sdk_moniker=USER_AGENT, authentication_policy=AzureKeyCredentialPolicy(credential, COGNITIVE_KEY_HEADER), **kwargs )
def _get_authentication_policy(credential): if credential is None: raise ValueError("Parameter 'self._credential' must not be None.") if isinstance(credential, AzureKeyCredential): return AzureKeyCredentialPolicy(credential=credential, name=constants.EVENTGRID_KEY_HEADER) if isinstance(credential, AzureSasCredential): return EventGridSasCredentialPolicy( credential=credential, name=constants.EVENTGRID_TOKEN_HEADER ) raise ValueError("The provided credential should be an instance of AzureSasCredential or AzureKeyCredential")
def _authentication_policy(credential): authentication_policy = None if credential is None: raise ValueError("Parameter 'credential' must not be None.") if isinstance(credential, AzureKeyCredential): authentication_policy = AzureKeyCredentialPolicy( name="Ocp-Apim-Subscription-Key", credential=credential ) elif credential is not None and not hasattr(credential, "get_token"): raise TypeError("Unsupported credential: {}. Use an instance of AzureKeyCredential " "or a token credential from azure.identity".format(type(credential))) return authentication_policy
def test_azure_key_credential_policy(): """Tests to see if we can create an AzureKeyCredentialPolicy""" key_header = "api_key" api_key = "test_key" def verify_authorization_header(request): assert request.headers[key_header] == api_key transport=Mock(send=verify_authorization_header) credential = AzureKeyCredential(api_key) credential_policy = AzureKeyCredentialPolicy(credential=credential, name=key_header) pipeline = Pipeline(transport=transport, policies=[credential_policy]) pipeline.run(HttpRequest("GET", "https://test_key_credential"))
def _get_authentication_policy(credential, bearer_token_policy=BearerTokenCredentialPolicy ): if credential is None: raise ValueError("Parameter 'self._credential' must not be None.") if hasattr(credential, "get_token"): return bearer_token_policy(credential, constants.DEFAULT_EVENTGRID_SCOPE) if isinstance(credential, AzureKeyCredential): return AzureKeyCredentialPolicy(credential=credential, name=constants.EVENTGRID_KEY_HEADER) if isinstance(credential, AzureSasCredential): return EventGridSasCredentialPolicy( credential=credential, name=constants.EVENTGRID_TOKEN_HEADER) raise ValueError( "The provided credential should be an instance of a TokenCredential, AzureSasCredential or AzureKeyCredential" )
def __init__(self, endpoint, credential, **kwargs): # type: (str, AzureKeyCredential, **Any) -> None """DocumentTranslationClient is your interface to the Document Translation service. Use the client to translate whole documents while preserving source document structure and text formatting. :param str endpoint: Supported Document Translation endpoint (protocol and hostname, for example: https://<resource-name>.cognitiveservices.azure.com/). :param credential: Credential needed for the client to connect to Azure. Currently only API key authentication is supported. :type credential: :class:`~azure.core.credentials.AzureKeyCredential` :keyword api_version: The API version of the service to use for requests. It defaults to the latest service version. Setting to an older version may result in reduced feature compatibility. :paramtype api_version: str or ~azure.ai.translation.document.DocumentTranslationApiVersion .. admonition:: Example: .. literalinclude:: ../samples/sample_authentication.py :start-after: [START create_dt_client_with_key] :end-before: [END create_dt_client_with_key] :language: python :dedent: 4 :caption: Creating the DocumentTranslationClient with an endpoint and API key. """ self._endpoint = endpoint self._credential = credential self._api_version = kwargs.pop('api_version', None) if credential is None: raise ValueError("Parameter 'credential' must not be None.") authentication_policy = AzureKeyCredentialPolicy( name=COGNITIVE_KEY_HEADER, credential=credential ) self._client = _BatchDocumentTranslationClient( endpoint=endpoint, credential=credential, # type: ignore api_version=self._api_version, sdk_moniker=USER_AGENT, authentication_policy=authentication_policy, http_logging_policy=get_http_logging_policy(), **kwargs )