%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE! %% See https://github.com/aws-beam/aws-codegen for more details. %% @doc AWS Database Migration Service %% %% AWS Database Migration Service (AWS DMS) can migrate your data to and from %% the most widely used commercial and open-source databases such as Oracle, %% PostgreSQL, Microsoft SQL Server, Amazon Redshift, MariaDB, Amazon Aurora, %% MySQL, and SAP Adaptive Server Enterprise (ASE). The service supports %% homogeneous migrations such as Oracle to Oracle, as well as heterogeneous %% migrations between different database platforms, such as Oracle to MySQL %% or SQL Server to PostgreSQL. %% %% For more information about AWS DMS, see What %% Is AWS Database Migration Service? in the AWS Database Migration %% User Guide. -module(aws_dms). -export([add_tags_to_resource/2, add_tags_to_resource/3, apply_pending_maintenance_action/2, apply_pending_maintenance_action/3, cancel_replication_task_assessment_run/2, cancel_replication_task_assessment_run/3, create_endpoint/2, create_endpoint/3, create_event_subscription/2, create_event_subscription/3, create_replication_instance/2, create_replication_instance/3, create_replication_subnet_group/2, create_replication_subnet_group/3, create_replication_task/2, create_replication_task/3, delete_certificate/2, delete_certificate/3, delete_connection/2, delete_connection/3, delete_endpoint/2, delete_endpoint/3, delete_event_subscription/2, delete_event_subscription/3, delete_replication_instance/2, delete_replication_instance/3, delete_replication_subnet_group/2, delete_replication_subnet_group/3, delete_replication_task/2, delete_replication_task/3, delete_replication_task_assessment_run/2, delete_replication_task_assessment_run/3, describe_account_attributes/2, describe_account_attributes/3, describe_applicable_individual_assessments/2, describe_applicable_individual_assessments/3, describe_certificates/2, describe_certificates/3, describe_connections/2, describe_connections/3, describe_endpoint_types/2, describe_endpoint_types/3, describe_endpoints/2, describe_endpoints/3, describe_event_categories/2, describe_event_categories/3, describe_event_subscriptions/2, describe_event_subscriptions/3, describe_events/2, describe_events/3, describe_orderable_replication_instances/2, describe_orderable_replication_instances/3, describe_pending_maintenance_actions/2, describe_pending_maintenance_actions/3, describe_refresh_schemas_status/2, describe_refresh_schemas_status/3, describe_replication_instance_task_logs/2, describe_replication_instance_task_logs/3, describe_replication_instances/2, describe_replication_instances/3, describe_replication_subnet_groups/2, describe_replication_subnet_groups/3, describe_replication_task_assessment_results/2, describe_replication_task_assessment_results/3, describe_replication_task_assessment_runs/2, describe_replication_task_assessment_runs/3, describe_replication_task_individual_assessments/2, describe_replication_task_individual_assessments/3, describe_replication_tasks/2, describe_replication_tasks/3, describe_schemas/2, describe_schemas/3, describe_table_statistics/2, describe_table_statistics/3, import_certificate/2, import_certificate/3, list_tags_for_resource/2, list_tags_for_resource/3, modify_endpoint/2, modify_endpoint/3, modify_event_subscription/2, modify_event_subscription/3, modify_replication_instance/2, modify_replication_instance/3, modify_replication_subnet_group/2, modify_replication_subnet_group/3, modify_replication_task/2, modify_replication_task/3, reboot_replication_instance/2, reboot_replication_instance/3, refresh_schemas/2, refresh_schemas/3, reload_tables/2, reload_tables/3, remove_tags_from_resource/2, remove_tags_from_resource/3, start_replication_task/2, start_replication_task/3, start_replication_task_assessment/2, start_replication_task_assessment/3, start_replication_task_assessment_run/2, start_replication_task_assessment_run/3, stop_replication_task/2, stop_replication_task/3, test_connection/2, test_connection/3]). -include_lib("hackney/include/hackney_lib.hrl"). %%==================================================================== %% API %%==================================================================== %% @doc Adds metadata tags to an AWS DMS resource, including replication %% instance, endpoint, security group, and migration task. These tags can %% also be used with cost allocation reporting to track cost associated with %% DMS resources, or used in a Condition statement in an IAM policy for DMS. add_tags_to_resource(Client, Input) when is_map(Client), is_map(Input) -> add_tags_to_resource(Client, Input, []). add_tags_to_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"AddTagsToResource">>, Input, Options). %% @doc Applies a pending maintenance action to a resource (for example, to a %% replication instance). apply_pending_maintenance_action(Client, Input) when is_map(Client), is_map(Input) -> apply_pending_maintenance_action(Client, Input, []). apply_pending_maintenance_action(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ApplyPendingMaintenanceAction">>, Input, Options). %% @doc Cancels a single premigration assessment run. %% %% This operation prevents any individual assessments from running if they %% haven't started running. It also attempts to cancel any individual %% assessments that are currently running. cancel_replication_task_assessment_run(Client, Input) when is_map(Client), is_map(Input) -> cancel_replication_task_assessment_run(Client, Input, []). cancel_replication_task_assessment_run(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CancelReplicationTaskAssessmentRun">>, Input, Options). %% @doc Creates an endpoint using the provided settings. create_endpoint(Client, Input) when is_map(Client), is_map(Input) -> create_endpoint(Client, Input, []). create_endpoint(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateEndpoint">>, Input, Options). %% @doc Creates an AWS DMS event notification subscription. %% %% You can specify the type of source (SourceType) you want to %% be notified of, provide a list of AWS DMS source IDs %% (SourceIds) that triggers the events, and provide a list of %% event categories (EventCategories) for events you want to be %% notified of. If you specify both the SourceType and %% SourceIds, such as SourceType = %% replication-instance and SourceIdentifier = %% my-replinstance, you will be notified of all the replication %% instance events for the specified source. If you specify a %% SourceType but don't specify a SourceIdentifier, %% you receive notice of the events for that source type for all your AWS DMS %% sources. If you don't specify either SourceType nor %% SourceIdentifier, you will be notified of events generated %% from all AWS DMS sources belonging to your customer account. %% %% For more information about AWS DMS events, see Working %% with Events and Notifications in the AWS Database Migration Service %% User Guide. create_event_subscription(Client, Input) when is_map(Client), is_map(Input) -> create_event_subscription(Client, Input, []). create_event_subscription(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateEventSubscription">>, Input, Options). %% @doc Creates the replication instance using the specified parameters. %% %% AWS DMS requires that your account have certain roles with appropriate %% permissions before you can create a replication instance. For information %% on the required roles, see Creating %% the IAM Roles to Use With the AWS CLI and AWS DMS API. For information %% on the required permissions, see IAM %% Permissions Needed to Use AWS DMS. create_replication_instance(Client, Input) when is_map(Client), is_map(Input) -> create_replication_instance(Client, Input, []). create_replication_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateReplicationInstance">>, Input, Options). %% @doc Creates a replication subnet group given a list of the subnet IDs in %% a VPC. create_replication_subnet_group(Client, Input) when is_map(Client), is_map(Input) -> create_replication_subnet_group(Client, Input, []). create_replication_subnet_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateReplicationSubnetGroup">>, Input, Options). %% @doc Creates a replication task using the specified parameters. create_replication_task(Client, Input) when is_map(Client), is_map(Input) -> create_replication_task(Client, Input, []). create_replication_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateReplicationTask">>, Input, Options). %% @doc Deletes the specified certificate. delete_certificate(Client, Input) when is_map(Client), is_map(Input) -> delete_certificate(Client, Input, []). delete_certificate(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteCertificate">>, Input, Options). %% @doc Deletes the connection between a replication instance and an %% endpoint. delete_connection(Client, Input) when is_map(Client), is_map(Input) -> delete_connection(Client, Input, []). delete_connection(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteConnection">>, Input, Options). %% @doc Deletes the specified endpoint. %% %% All tasks associated with the endpoint must be deleted before you %% can delete the endpoint. %% %%

delete_endpoint(Client, Input) when is_map(Client), is_map(Input) -> delete_endpoint(Client, Input, []). delete_endpoint(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteEndpoint">>, Input, Options). %% @doc Deletes an AWS DMS event subscription. delete_event_subscription(Client, Input) when is_map(Client), is_map(Input) -> delete_event_subscription(Client, Input, []). delete_event_subscription(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteEventSubscription">>, Input, Options). %% @doc Deletes the specified replication instance. %% %% You must delete any migration tasks that are associated with the %% replication instance before you can delete it. %% %%

delete_replication_instance(Client, Input) when is_map(Client), is_map(Input) -> delete_replication_instance(Client, Input, []). delete_replication_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteReplicationInstance">>, Input, Options). %% @doc Deletes a subnet group. delete_replication_subnet_group(Client, Input) when is_map(Client), is_map(Input) -> delete_replication_subnet_group(Client, Input, []). delete_replication_subnet_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteReplicationSubnetGroup">>, Input, Options). %% @doc Deletes the specified replication task. delete_replication_task(Client, Input) when is_map(Client), is_map(Input) -> delete_replication_task(Client, Input, []). delete_replication_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteReplicationTask">>, Input, Options). %% @doc Deletes the record of a single premigration assessment run. %% %% This operation removes all metadata that AWS DMS maintains about this %% assessment run. However, the operation leaves untouched all information %% about this assessment run that is stored in your Amazon S3 bucket. delete_replication_task_assessment_run(Client, Input) when is_map(Client), is_map(Input) -> delete_replication_task_assessment_run(Client, Input, []). delete_replication_task_assessment_run(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteReplicationTaskAssessmentRun">>, Input, Options). %% @doc Lists all of the AWS DMS attributes for a customer account. These %% attributes include AWS DMS quotas for the account and a unique account %% identifier in a particular DMS region. DMS quotas include a list of %% resource quotas supported by the account, such as the number of %% replication instances allowed. The description for each resource quota, %% includes the quota name, current usage toward that quota, and the quota's %% maximum value. DMS uses the unique account identifier to name each %% artifact used by DMS in the given region. %% %% This command does not take any parameters. describe_account_attributes(Client, Input) when is_map(Client), is_map(Input) -> describe_account_attributes(Client, Input, []). describe_account_attributes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeAccountAttributes">>, Input, Options). %% @doc Provides a list of individual assessments that you can specify for a %% new premigration assessment run, given one or more parameters. %% %% If you specify an existing migration task, this operation provides the %% default individual assessments you can specify for that task. Otherwise, %% the specified parameters model elements of a possible migration task on %% which to base a premigration assessment run. %% %% To use these migration task modeling parameters, you must specify an %% existing replication instance, a source database engine, a target database %% engine, and a migration type. This combination of parameters potentially %% limits the default individual assessments available for an assessment run %% created for a corresponding migration task. %% %% If you specify no parameters, this operation provides a list of all %% possible individual assessments that you can specify for an assessment %% run. If you specify any one of the task modeling parameters, you must %% specify all of them or the operation cannot provide a list of individual %% assessments. The only parameter that you can specify alone is for an %% existing migration task. The specified task definition then determines the %% default list of individual assessments that you can specify in an %% assessment run for the task. describe_applicable_individual_assessments(Client, Input) when is_map(Client), is_map(Input) -> describe_applicable_individual_assessments(Client, Input, []). describe_applicable_individual_assessments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeApplicableIndividualAssessments">>, Input, Options). %% @doc Provides a description of the certificate. describe_certificates(Client, Input) when is_map(Client), is_map(Input) -> describe_certificates(Client, Input, []). describe_certificates(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeCertificates">>, Input, Options). %% @doc Describes the status of the connections that have been made between %% the replication instance and an endpoint. Connections are created when you %% test an endpoint. describe_connections(Client, Input) when is_map(Client), is_map(Input) -> describe_connections(Client, Input, []). describe_connections(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeConnections">>, Input, Options). %% @doc Returns information about the type of endpoints available. describe_endpoint_types(Client, Input) when is_map(Client), is_map(Input) -> describe_endpoint_types(Client, Input, []). describe_endpoint_types(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeEndpointTypes">>, Input, Options). %% @doc Returns information about the endpoints for your account in the %% current region. describe_endpoints(Client, Input) when is_map(Client), is_map(Input) -> describe_endpoints(Client, Input, []). describe_endpoints(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeEndpoints">>, Input, Options). %% @doc Lists categories for all event source types, or, if specified, for a %% specified source type. You can see a list of the event categories and %% source types in Working %% with Events and Notifications in the AWS Database Migration Service %% User Guide. describe_event_categories(Client, Input) when is_map(Client), is_map(Input) -> describe_event_categories(Client, Input, []). describe_event_categories(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeEventCategories">>, Input, Options). %% @doc Lists all the event subscriptions for a customer account. The %% description of a subscription includes SubscriptionName, %% SNSTopicARN, CustomerID, %% SourceType, SourceID, CreationTime, %% and Status. %% %% If you specify SubscriptionName, this action lists the %% description for that subscription. describe_event_subscriptions(Client, Input) when is_map(Client), is_map(Input) -> describe_event_subscriptions(Client, Input, []). describe_event_subscriptions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeEventSubscriptions">>, Input, Options). %% @doc Lists events for a given source identifier and source type. You can %% also specify a start and end time. For more information on AWS DMS events, %% see Working %% with Events and Notifications in the AWS Database Migration User %% Guide. describe_events(Client, Input) when is_map(Client), is_map(Input) -> describe_events(Client, Input, []). describe_events(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeEvents">>, Input, Options). %% @doc Returns information about the replication instance types that can be %% created in the specified region. describe_orderable_replication_instances(Client, Input) when is_map(Client), is_map(Input) -> describe_orderable_replication_instances(Client, Input, []). describe_orderable_replication_instances(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeOrderableReplicationInstances">>, Input, Options). %% @doc For internal use only describe_pending_maintenance_actions(Client, Input) when is_map(Client), is_map(Input) -> describe_pending_maintenance_actions(Client, Input, []). describe_pending_maintenance_actions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribePendingMaintenanceActions">>, Input, Options). %% @doc Returns the status of the RefreshSchemas operation. describe_refresh_schemas_status(Client, Input) when is_map(Client), is_map(Input) -> describe_refresh_schemas_status(Client, Input, []). describe_refresh_schemas_status(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeRefreshSchemasStatus">>, Input, Options). %% @doc Returns information about the task logs for the specified task. describe_replication_instance_task_logs(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_instance_task_logs(Client, Input, []). describe_replication_instance_task_logs(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationInstanceTaskLogs">>, Input, Options). %% @doc Returns information about replication instances for your account in %% the current region. describe_replication_instances(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_instances(Client, Input, []). describe_replication_instances(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationInstances">>, Input, Options). %% @doc Returns information about the replication subnet groups. describe_replication_subnet_groups(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_subnet_groups(Client, Input, []). describe_replication_subnet_groups(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationSubnetGroups">>, Input, Options). %% @doc Returns the task assessment results from Amazon S3. This action %% always returns the latest results. describe_replication_task_assessment_results(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_task_assessment_results(Client, Input, []). describe_replication_task_assessment_results(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationTaskAssessmentResults">>, Input, Options). %% @doc Returns a paginated list of premigration assessment runs based on %% filter settings. %% %% These filter settings can specify a combination of premigration assessment %% runs, migration tasks, replication instances, and assessment run status %% values. %% %% This operation doesn't return information about individual %% assessments. For this information, see the %% DescribeReplicationTaskIndividualAssessments operation. %% %% describe_replication_task_assessment_runs(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_task_assessment_runs(Client, Input, []). describe_replication_task_assessment_runs(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationTaskAssessmentRuns">>, Input, Options). %% @doc Returns a paginated list of individual assessments based on filter %% settings. %% %% These filter settings can specify a combination of premigration assessment %% runs, migration tasks, and assessment status values. describe_replication_task_individual_assessments(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_task_individual_assessments(Client, Input, []). describe_replication_task_individual_assessments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationTaskIndividualAssessments">>, Input, Options). %% @doc Returns information about replication tasks for your account in the %% current region. describe_replication_tasks(Client, Input) when is_map(Client), is_map(Input) -> describe_replication_tasks(Client, Input, []). describe_replication_tasks(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeReplicationTasks">>, Input, Options). %% @doc Returns information about the schema for the specified endpoint. %% %%

describe_schemas(Client, Input) when is_map(Client), is_map(Input) -> describe_schemas(Client, Input, []). describe_schemas(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeSchemas">>, Input, Options). %% @doc Returns table statistics on the database migration task, including %% table name, rows inserted, rows updated, and rows deleted. %% %% Note that the "last updated" column the DMS console only indicates the %% time that AWS DMS last updated the table statistics record for a table. It %% does not indicate the time of the last update to the table. describe_table_statistics(Client, Input) when is_map(Client), is_map(Input) -> describe_table_statistics(Client, Input, []). describe_table_statistics(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeTableStatistics">>, Input, Options). %% @doc Uploads the specified certificate. import_certificate(Client, Input) when is_map(Client), is_map(Input) -> import_certificate(Client, Input, []). import_certificate(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ImportCertificate">>, Input, Options). %% @doc Lists all tags for an AWS DMS resource. list_tags_for_resource(Client, Input) when is_map(Client), is_map(Input) -> list_tags_for_resource(Client, Input, []). list_tags_for_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTagsForResource">>, Input, Options). %% @doc Modifies the specified endpoint. modify_endpoint(Client, Input) when is_map(Client), is_map(Input) -> modify_endpoint(Client, Input, []). modify_endpoint(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ModifyEndpoint">>, Input, Options). %% @doc Modifies an existing AWS DMS event notification subscription. modify_event_subscription(Client, Input) when is_map(Client), is_map(Input) -> modify_event_subscription(Client, Input, []). modify_event_subscription(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ModifyEventSubscription">>, Input, Options). %% @doc Modifies the replication instance to apply new settings. You can %% change one or more parameters by specifying these parameters and the new %% values in the request. %% %% Some settings are applied during the maintenance window. %% %%

modify_replication_instance(Client, Input) when is_map(Client), is_map(Input) -> modify_replication_instance(Client, Input, []). modify_replication_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ModifyReplicationInstance">>, Input, Options). %% @doc Modifies the settings for the specified replication subnet group. modify_replication_subnet_group(Client, Input) when is_map(Client), is_map(Input) -> modify_replication_subnet_group(Client, Input, []). modify_replication_subnet_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ModifyReplicationSubnetGroup">>, Input, Options). %% @doc Modifies the specified replication task. %% %% You can't modify the task endpoints. The task must be stopped before you %% can modify it. %% %% For more information about AWS DMS tasks, see Working %% with Migration Tasks in the AWS Database Migration Service User %% Guide. modify_replication_task(Client, Input) when is_map(Client), is_map(Input) -> modify_replication_task(Client, Input, []). modify_replication_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ModifyReplicationTask">>, Input, Options). %% @doc Reboots a replication instance. Rebooting results in a momentary %% outage, until the replication instance becomes available again. reboot_replication_instance(Client, Input) when is_map(Client), is_map(Input) -> reboot_replication_instance(Client, Input, []). reboot_replication_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RebootReplicationInstance">>, Input, Options). %% @doc Populates the schema for the specified endpoint. This is an %% asynchronous operation and can take several minutes. You can check the %% status of this operation by calling the DescribeRefreshSchemasStatus %% operation. refresh_schemas(Client, Input) when is_map(Client), is_map(Input) -> refresh_schemas(Client, Input, []). refresh_schemas(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RefreshSchemas">>, Input, Options). %% @doc Reloads the target database table with the source data. reload_tables(Client, Input) when is_map(Client), is_map(Input) -> reload_tables(Client, Input, []). reload_tables(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ReloadTables">>, Input, Options). %% @doc Removes metadata tags from a DMS resource. remove_tags_from_resource(Client, Input) when is_map(Client), is_map(Input) -> remove_tags_from_resource(Client, Input, []). remove_tags_from_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RemoveTagsFromResource">>, Input, Options). %% @doc Starts the replication task. %% %% For more information about AWS DMS tasks, see Working %% with Migration Tasks in the AWS Database Migration Service User %% Guide. start_replication_task(Client, Input) when is_map(Client), is_map(Input) -> start_replication_task(Client, Input, []). start_replication_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StartReplicationTask">>, Input, Options). %% @doc Starts the replication task assessment for unsupported data types in %% the source database. start_replication_task_assessment(Client, Input) when is_map(Client), is_map(Input) -> start_replication_task_assessment(Client, Input, []). start_replication_task_assessment(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StartReplicationTaskAssessment">>, Input, Options). %% @doc Starts a new premigration assessment run for one or more individual %% assessments of a migration task. %% %% The assessments that you can specify depend on the source and target %% database engine and the migration type defined for the given task. To run %% this operation, your migration task must already be created. After you run %% this operation, you can review the status of each individual assessment. %% You can also run the migration task manually after the assessment run and %% its individual assessments complete. start_replication_task_assessment_run(Client, Input) when is_map(Client), is_map(Input) -> start_replication_task_assessment_run(Client, Input, []). start_replication_task_assessment_run(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StartReplicationTaskAssessmentRun">>, Input, Options). %% @doc Stops the replication task. stop_replication_task(Client, Input) when is_map(Client), is_map(Input) -> stop_replication_task(Client, Input, []). stop_replication_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StopReplicationTask">>, Input, Options). %% @doc Tests the connection between the replication instance and the %% endpoint. test_connection(Client, Input) when is_map(Client), is_map(Input) -> test_connection(Client, Input, []). test_connection(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"TestConnection">>, Input, Options). %%==================================================================== %% Internal functions %%==================================================================== -spec request(aws_client:aws_client(), binary(), map(), list()) -> {ok, Result, {integer(), list(), hackney:client()}} | {error, Error, {integer(), list(), hackney:client()}} | {error, term()} when Result :: map() | undefined, Error :: {binary(), binary()}. request(Client, Action, Input, Options) -> Client1 = Client#{service => <<"dms">>}, Host = get_host(<<"dms">>, Client1), URL = get_url(Host, Client1), Headers = [ {<<"Host">>, Host}, {<<"Content-Type">>, <<"application/x-amz-json-1.1">>}, {<<"X-Amz-Target">>, << <<"AmazonDMSv20160101.">>/binary, Action/binary>>} ], Payload = jsx:encode(Input), SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload), Response = hackney:request(post, URL, SignedHeaders, Payload, Options), handle_response(Response). handle_response({ok, 200, ResponseHeaders, Client}) -> case hackney:body(Client) of {ok, <<>>} -> {ok, undefined, {200, ResponseHeaders, Client}}; {ok, Body} -> Result = jsx:decode(Body, [return_maps]), {ok, Result, {200, ResponseHeaders, Client}} end; handle_response({ok, StatusCode, ResponseHeaders, Client}) -> {ok, Body} = hackney:body(Client), Error = jsx:decode(Body, [return_maps]), Exception = maps:get(<<"__type">>, Error, undefined), Reason = maps:get(<<"message">>, Error, undefined), {error, {Exception, Reason}, {StatusCode, ResponseHeaders, Client}}; handle_response({error, Reason}) -> {error, Reason}. get_host(_EndpointPrefix, #{region := <<"local">>}) -> <<"localhost">>; get_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) -> aws_util:binary_join([EndpointPrefix, <<".">>, Region, <<".">>, Endpoint], <<"">>). get_url(Host, Client) -> Proto = maps:get(proto, Client), Port = maps:get(port, Client), aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).