Skip to content

start_metadata_model_import async

start_metadata_model_import(
    migration_project_identifier: MigrationProjectIdentifier,
    selection_rules: String,
    origin: OriginTypeValue,
    *,
    config_overrides: Optional[AsyncDatabaseMigrationServiceClientConfig] = None,
    refresh: Optional[Boolean] = None,
) -> StartMetadataModelImportResponse

Queues an import of metadata models (database objects such as tables, views, and procedures) from your data provider into the metadata tree. If other requests created by Start* operations are already in the migration project's queue, the import begins after they complete.

To check the status of the import request, call DescribeMetadataModelImports using the returned RequestIdentifier as a filter.

Required permissions: dms:StartMetadataModelImport. For more information, see Actions, resources, and condition keys for Database Migration Service.

Parameters:

  • migration_project_identifier (MigrationProjectIdentifier) –

    The migration project name or Amazon Resource Name (ARN).

  • selection_rules (String) –

    A JSON string that identifies the metadata models to import from the data provider. For the selection rule format and examples, see Selection rules in DMS Schema Conversion.

    Usage:

    • Accepts source or target selection rules depending on the Origin parameter. The server-name in the object locator must match the corresponding data provider.

    • Supports explicit, include, and exclude rule actions.

  • origin (OriginTypeValue) –

    Specifies the metadata tree to import into.

    You cannot import from a virtual target data provider.

  • refresh (Optional[Boolean], default: None ) –

    Specifies whether to refresh the selected metadata models from the data provider.

    When true, the import reloads the selected metadata models with current definitions and removes their existing subtree.

    When false (default), the import loads the full subtree that has not yet been loaded into the metadata tree.

Raises:

Examples:

Import metadata from the source database The following example queues a metadata import for all objects in the ExampleSchema schema from the source database.

>>> await client.start_metadata_model_import(migration_project_identifier='arn:aws:dms:us-east-1:111122223333:migration-project:EXAMPLEABCDEFGHIJKLMNOPQRS', selection_rules='{"rules": [{"rule-type": "selection","rule-id": "1","rule-name": "1","object-locator": {"server-name": "example-source-server.us-east-1.rds.amazonaws.com", "schema-name": "ExampleSchema"},"rule-action": "explicit"}]}', origin='SOURCE', refresh=False)
Source code in docs_src/capo_database_migration_service/_services/async_database_migration_service.py
async def start_metadata_model_import(
    self,
    migration_project_identifier: "capo_database_migration_service.types.migration_project_identifier.MigrationProjectIdentifier",
    selection_rules: "capo_database_migration_service.types.string.String",
    origin: "capo_database_migration_service.types.origin_type_value.OriginTypeValue",
    *,
    config_overrides: Optional[AsyncDatabaseMigrationServiceClientConfig] = None,
    refresh: Optional[
        "capo_database_migration_service.types.boolean.Boolean"
    ] = None,
) -> "capo_database_migration_service.types.start_metadata_model_import_response.StartMetadataModelImportResponse":
    """<p>Queues an import of metadata models (database objects such as tables, views, and procedures) from your data provider into the metadata tree. If other requests created by <code>Start*</code> operations are already in the migration project's queue, the import begins after they complete.</p> <p>To check the status of the import request, call <a href="https://docs.aws.amazon.com/dms/latest/APIReference/API_DescribeMetadataModelImports.html">DescribeMetadataModelImports</a> using the returned <code>RequestIdentifier</code> as a filter.</p> <p> <b>Required permissions:</b> <code>dms:StartMetadataModelImport</code>. For more information, see <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html">Actions, resources, and condition keys for Database Migration Service</a>.</p>

    Args:
        migration_project_identifier: <p>The migration project name or Amazon Resource Name (ARN).</p>
        selection_rules: <p>A JSON string that identifies the metadata models to import from the data provider. For the selection rule format and examples, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/sc-selection-rules.html">Selection rules in DMS Schema Conversion</a>.</p> <p>Usage:</p> <ul> <li> <p>Accepts source or target selection rules depending on the <code>Origin</code> parameter. The <code>server-name</code> in the object locator must match the corresponding data provider.</p> </li> <li> <p>Supports <code>explicit</code>, <code>include</code>, and <code>exclude</code> rule actions.</p> </li> </ul>
        origin: <p>Specifies the metadata tree to import into.</p> <note> <p>You cannot import from a virtual target data provider.</p> </note>
        refresh: <p>Specifies whether to refresh the selected metadata models from the data provider.</p> <p>When <code>true</code>, the import reloads the selected metadata models with current definitions and removes their existing subtree.</p> <p>When <code>false</code> (default), the import loads the full subtree that has not yet been loaded into the metadata tree.</p>

    Raises:
        capo_database_migration_service.errors.access_denied_fault.AccessDeniedFault: <p>DMS was denied access to the endpoint. Check that the role is correctly configured.</p>
        capo_database_migration_service.errors.invalid_resource_state_fault.InvalidResourceStateFault: <p>The resource is in a state that prevents it from being used for database migration.</p>
        capo_database_migration_service.errors.kms_key_not_accessible_fault.KMSKeyNotAccessibleFault: <p>DMS cannot access the KMS key.</p>
        capo_database_migration_service.errors.resource_already_exists_fault.ResourceAlreadyExistsFault: <p>The resource you are attempting to create already exists.</p>
        capo_database_migration_service.errors.resource_not_found_fault.ResourceNotFoundFault: <p>The resource could not be found.</p>
        capo_database_migration_service.errors.resource_quota_exceeded_fault.ResourceQuotaExceededFault: <p>The quota for this resource quota has been exceeded.</p>
        capo_database_migration_service.errors.s3_access_denied_fault.S3AccessDeniedFault: <p>Insufficient privileges are preventing access to an Amazon S3 object.</p>
        capo_database_migration_service.errors.s3_resource_not_found_fault.S3ResourceNotFoundFault: <p>A specified Amazon S3 bucket, bucket folder, or other object can't be found.</p>
        capo_database_migration_service.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Import metadata from the source database
        The following example queues a metadata import for all objects in the ExampleSchema schema from the source database.

        >>> await client.start_metadata_model_import(migration_project_identifier='arn:aws:dms:us-east-1:111122223333:migration-project:EXAMPLEABCDEFGHIJKLMNOPQRS', selection_rules='{"rules": [{"rule-type": "selection","rule-id": "1","rule-name": "1","object-locator": {"server-name": "example-source-server.us-east-1.rds.amazonaws.com", "schema-name": "ExampleSchema"},"rule-action": "explicit"}]}', origin='SOURCE', refresh=False)
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_database_migration_service.types.start_metadata_model_import_message.StartMetadataModelImportMessage]",
    ) -> AsyncOperationResponse[
        "capo_database_migration_service.types.start_metadata_model_import_response.StartMetadataModelImportResponse"
    ]:
        import capo_database_migration_service._operations.amazon_dm_sv20160101.start_metadata_model_import

        (
            output,
            http_response,
        ) = await capo_database_migration_service._operations.amazon_dm_sv20160101.start_metadata_model_import.async_start_metadata_model_import(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("StartMetadataModelImport")
    )
    input_: capo_database_migration_service.types.start_metadata_model_import_message.StartMetadataModelImportMessage = {
        "migration_project_identifier": migration_project_identifier,
        "selection_rules": selection_rules,
        "origin": origin,
    }
    if refresh is not None:
        input_["refresh"] = refresh

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output