Skip to content

create_location_azure_blob

create_location_azure_blob(
    container_url: AzureBlobContainerUrl,
    authentication_type: AzureBlobAuthenticationType,
    *,
    config_overrides: Optional[DataSyncClientConfig] = None,
    sas_configuration: Optional[AzureBlobSasConfiguration] = None,
    blob_type: Optional[AzureBlobType] = None,
    access_tier: Optional[AzureAccessTier] = None,
    subdirectory: Optional[AzureBlobSubdirectory] = None,
    agent_arns: Optional[AgentArnList] = None,
    tags: Optional[InputTagList] = None,
    cmk_secret_config: Optional[CmkSecretConfig] = None,
    custom_secret_config: Optional[CustomSecretConfig] = None,
) -> CreateLocationAzureBlobResponse

Creates a transfer location for a Microsoft Azure Blob Storage container. DataSync can use this location as a transfer source or destination. You can make transfers with or without a DataSync agent that connects to your container.

Before you begin, make sure you know how DataSync accesses Azure Blob Storage and works with access tiers and blob types.

Parameters:

  • container_url (AzureBlobContainerUrl) –

    Specifies the URL of the Azure Blob Storage container involved in your transfer.

  • authentication_type (AzureBlobAuthenticationType) –

    Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

  • sas_configuration (Optional[AzureBlobSasConfiguration], default: None ) –

    Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.

    If you provide an authentication token using SasConfiguration, but do not provide secret configuration details using CmkSecretConfig or CustomSecretConfig, then DataSync stores the token using your Amazon Web Services account's secrets manager secret.

  • blob_type (Optional[AzureBlobType], default: None ) –

    Specifies the type of blob that you want your objects or files to be when transferring them into Azure Blob Storage. Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

  • access_tier (Optional[AzureAccessTier], default: None ) –

    Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

  • subdirectory (Optional[AzureBlobSubdirectory], default: None ) –

    Specifies path segments if you want to limit your transfer to a virtual directory in your container (for example, /my/images).

  • agent_arns (Optional[AgentArnList], default: None ) –

    (Optional) Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container. If you are setting up an agentless cross-cloud transfer, you do not need to specify a value for this parameter.

    You can specify more than one agent. For more information, see Using multiple agents for your transfer.

    Make sure you configure this parameter correctly when you first create your storage location. You cannot add or remove agents from a storage location after you create it.

  • tags (Optional[InputTagList], default: None ) –

    Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.

  • cmk_secret_config (Optional[CmkSecretConfig], default: None ) –

    Specifies configuration information for a DataSync-managed secret, which includes the authentication token that DataSync uses to access a specific AzureBlob storage location, with a customer-managed KMS key.

    When you include this parameter as part of a CreateLocationAzureBlob request, you provide only the KMS key ARN. DataSync uses this KMS key together with the authentication token you specify for SasConfiguration to create a DataSync-managed secret to store the location access credentials.

    Make sure that DataSync has permission to access the KMS key that you specify. For more information, see Using a service-managed secret encrypted with a custom KMS key.

    You can use either CmkSecretConfig (with SasConfiguration) or CustomSecretConfig (without SasConfiguration) to provide credentials for a CreateLocationAzureBlob request. Do not provide both parameters for the same request.

  • custom_secret_config (Optional[CustomSecretConfig], default: None ) –

    Specifies configuration information for a customer-managed Secrets Manager secret where the authentication token for an AzureBlob storage location is stored in plain text, in Secrets Manager. This configuration includes the secret ARN, and the ARN for an IAM role that provides access to the secret. For more information, see Using a secret that you manage.

    You can use either CmkSecretConfig (with SasConfiguration) or CustomSecretConfig (without SasConfiguration) to provide credentials for a CreateLocationAzureBlob request. Do not provide both parameters for the same request.

Raises:

Source code in docs_src/capo_datasync/_services/data_sync.py
def create_location_azure_blob(
    self,
    container_url: "capo_datasync.types.azure_blob_container_url.AzureBlobContainerUrl",
    authentication_type: "capo_datasync.types.azure_blob_authentication_type.AzureBlobAuthenticationType",
    *,
    config_overrides: Optional[DataSyncClientConfig] = None,
    sas_configuration: Optional[
        "capo_datasync.types.azure_blob_sas_configuration.AzureBlobSasConfiguration"
    ] = None,
    blob_type: Optional["capo_datasync.types.azure_blob_type.AzureBlobType"] = None,
    access_tier: Optional[
        "capo_datasync.types.azure_access_tier.AzureAccessTier"
    ] = None,
    subdirectory: Optional[
        "capo_datasync.types.azure_blob_subdirectory.AzureBlobSubdirectory"
    ] = None,
    agent_arns: Optional["capo_datasync.types.agent_arn_list.AgentArnList"] = None,
    tags: Optional["capo_datasync.types.input_tag_list.InputTagList"] = None,
    cmk_secret_config: Optional[
        "capo_datasync.types.cmk_secret_config.CmkSecretConfig"
    ] = None,
    custom_secret_config: Optional[
        "capo_datasync.types.custom_secret_config.CustomSecretConfig"
    ] = None,
) -> "capo_datasync.types.create_location_azure_blob_response.CreateLocationAzureBlobResponse":
    """<p>Creates a transfer <i>location</i> for a Microsoft Azure Blob Storage container. DataSync can use this location as a transfer source or destination. You can make transfers with or without a <a href="https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-creating-agent">DataSync agent</a> that connects to your container.</p> <p>Before you begin, make sure you know <a href="https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access">how DataSync accesses Azure Blob Storage</a> and works with <a href="https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers">access tiers</a> and <a href="https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#blob-types">blob types</a>.</p>

    Args:
        container_url: <p>Specifies the URL of the Azure Blob Storage container involved in your transfer.</p>
        authentication_type: <p>Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).</p>
        sas_configuration: <p>Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.</p> <note> <p>If you provide an authentication token using <code>SasConfiguration</code>, but do not provide secret configuration details using <code>CmkSecretConfig</code> or <code>CustomSecretConfig</code>, then DataSync stores the token using your Amazon Web Services account's secrets manager secret.</p> </note>
        blob_type: <p>Specifies the type of blob that you want your objects or files to be when transferring them into Azure Blob Storage. Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For more information on blob types, see the <a href="https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs">Azure Blob Storage documentation</a>.</p>
        access_tier: <p>Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers">Access tiers</a>.</p>
        subdirectory: <p>Specifies path segments if you want to limit your transfer to a virtual directory in your container (for example, <code>/my/images</code>).</p>
        agent_arns: <p>(Optional) Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container. If you are setting up an agentless cross-cloud transfer, you do not need to specify a value for this parameter.</p> <p>You can specify more than one agent. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html">Using multiple agents for your transfer</a>.</p> <note> <p>Make sure you configure this parameter correctly when you first create your storage location. You cannot add or remove agents from a storage location after you create it.</p> </note>
        tags: <p>Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.</p>
        cmk_secret_config: <p>Specifies configuration information for a DataSync-managed secret, which includes the authentication token that DataSync uses to access a specific AzureBlob storage location, with a customer-managed KMS key.</p> <p>When you include this parameter as part of a <code>CreateLocationAzureBlob</code> request, you provide only the KMS key ARN. DataSync uses this KMS key together with the authentication token you specify for <code>SasConfiguration</code> to create a DataSync-managed secret to store the location access credentials.</p> <p>Make sure that DataSync has permission to access the KMS key that you specify. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html#service-secret-custom-key"> Using a service-managed secret encrypted with a custom KMS key</a>.</p> <note> <p>You can use either <code>CmkSecretConfig</code> (with <code>SasConfiguration</code>) or <code>CustomSecretConfig</code> (without <code>SasConfiguration</code>) to provide credentials for a <code>CreateLocationAzureBlob</code> request. Do not provide both parameters for the same request.</p> </note>
        custom_secret_config: <p>Specifies configuration information for a customer-managed Secrets Manager secret where the authentication token for an AzureBlob storage location is stored in plain text, in Secrets Manager. This configuration includes the secret ARN, and the ARN for an IAM role that provides access to the secret. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/location-credentials.html#custom-secret-custom-key"> Using a secret that you manage</a>.</p> <note> <p>You can use either <code>CmkSecretConfig</code> (with <code>SasConfiguration</code>) or <code>CustomSecretConfig</code> (without <code>SasConfiguration</code>) to provide credentials for a <code>CreateLocationAzureBlob</code> request. Do not provide both parameters for the same request.</p> </note>

    Raises:
        capo_datasync.errors.internal_exception.InternalException: <p>This exception is thrown when an error occurs in the DataSync service.</p>
        capo_datasync.errors.invalid_request_exception.InvalidRequestException: <p>This exception is thrown when the client submits a malformed request.</p>
        capo_datasync.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_datasync.types.create_location_azure_blob_request.CreateLocationAzureBlobRequest]",
    ) -> OperationResponse[
        "capo_datasync.types.create_location_azure_blob_response.CreateLocationAzureBlobResponse"
    ]:
        import capo_datasync._operations.fmrs_service.create_location_azure_blob

        output, http_response = (
            capo_datasync._operations.fmrs_service.create_location_azure_blob.create_location_azure_blob(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_datasync.types.create_location_azure_blob_request.CreateLocationAzureBlobRequest",
    ) -> dict[str, Any]:
        import capo_datasync.types.create_location_azure_blob_request

        return (
            capo_datasync.types.create_location_azure_blob_request.redact_sensitive(
                input_
            )
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("CreateLocationAzureBlob", redact_input=_redact_input),
    )
    input_: capo_datasync.types.create_location_azure_blob_request.CreateLocationAzureBlobRequest = {
        "container_url": container_url,
        "authentication_type": authentication_type,
    }
    if sas_configuration is not None:
        input_["sas_configuration"] = sas_configuration
    if blob_type is not None:
        input_["blob_type"] = blob_type
    if access_tier is not None:
        input_["access_tier"] = access_tier
    if subdirectory is not None:
        input_["subdirectory"] = subdirectory
    if agent_arns is not None:
        input_["agent_arns"] = agent_arns
    if tags is not None:
        input_["tags"] = tags
    if cmk_secret_config is not None:
        input_["cmk_secret_config"] = cmk_secret_config
    if custom_secret_config is not None:
        input_["custom_secret_config"] = custom_secret_config

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output