# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: mgn
using AWS.Compat
using AWS.UUIDs

"""
    change_server_life_cycle_state(life_cycle, source_server_id)
    change_server_life_cycle_state(life_cycle, source_server_id, params::Dict{String,<:Any})

Allows the user to set the SourceServer.LifeCycle.state property for specific Source Server
IDs to one of the following: READY_FOR_TEST or READY_FOR_CUTOVER. This command only works
if the Source Server is already launchable (dataReplicationInfo.lagDuration is not null.)

# Arguments
- `life_cycle`: The request to change the source server migration lifecycle state.
- `source_server_id`: The request to change the source server migration lifecycle state by
  source server ID.

"""
change_server_life_cycle_state(lifeCycle, sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/ChangeServerLifeCycleState", Dict{String, Any}("lifeCycle"=>lifeCycle, "sourceServerID"=>sourceServerID); aws_config=aws_config)
change_server_life_cycle_state(lifeCycle, sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/ChangeServerLifeCycleState", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("lifeCycle"=>lifeCycle, "sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    create_replication_configuration_template(associate_default_security_group, bandwidth_throttling, create_public_ip, data_plane_routing, default_large_staging_disk_type, ebs_encryption, replication_server_instance_type, replication_servers_security_groups_ids, staging_area_subnet_id, staging_area_tags, use_dedicated_replication_server)
    create_replication_configuration_template(associate_default_security_group, bandwidth_throttling, create_public_ip, data_plane_routing, default_large_staging_disk_type, ebs_encryption, replication_server_instance_type, replication_servers_security_groups_ids, staging_area_subnet_id, staging_area_tags, use_dedicated_replication_server, params::Dict{String,<:Any})

Creates a new ReplicationConfigurationTemplate.

# Arguments
- `associate_default_security_group`: Request to associate the default Application
  Migration Service Security group with the Replication Settings template.
- `bandwidth_throttling`: Request to configure bandwidth throttling during Replication
  Settings template creation.
- `create_public_ip`: Request to create Public IP during Replication Settings template
  creation.
- `data_plane_routing`: Request to configure data plane routing during Replication Settings
  template creation.
- `default_large_staging_disk_type`: Request to configure the Staging Disk EBS volume type
  to \"gp2\" during Replication Settings template creation.
- `ebs_encryption`: Request to configure EBS enryption during Replication Settings template
  creation.
- `replication_server_instance_type`: Request to configure the Replication Server instance
  type during Replication Settings template creation.
- `replication_servers_security_groups_ids`: Request to configure the Replication Server
  Secuirity group ID during Replication Settings template creation.
- `staging_area_subnet_id`: Request to configure the Staging Area subnet ID during
  Replication Settings template creation.
- `staging_area_tags`: Request to configure Staiging Area tags during Replication Settings
  template creation.
- `use_dedicated_replication_server`: Request to use Dedicated Replication Servers during
  Replication Settings template creation.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"ebsEncryptionKeyArn"`: Request to configure an EBS enryption key during Replication
  Settings template creation.
- `"tags"`: Request to configure tags during Replication Settings template creation.
"""
create_replication_configuration_template(associateDefaultSecurityGroup, bandwidthThrottling, createPublicIP, dataPlaneRouting, defaultLargeStagingDiskType, ebsEncryption, replicationServerInstanceType, replicationServersSecurityGroupsIDs, stagingAreaSubnetId, stagingAreaTags, useDedicatedReplicationServer; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/CreateReplicationConfigurationTemplate", Dict{String, Any}("associateDefaultSecurityGroup"=>associateDefaultSecurityGroup, "bandwidthThrottling"=>bandwidthThrottling, "createPublicIP"=>createPublicIP, "dataPlaneRouting"=>dataPlaneRouting, "defaultLargeStagingDiskType"=>defaultLargeStagingDiskType, "ebsEncryption"=>ebsEncryption, "replicationServerInstanceType"=>replicationServerInstanceType, "replicationServersSecurityGroupsIDs"=>replicationServersSecurityGroupsIDs, "stagingAreaSubnetId"=>stagingAreaSubnetId, "stagingAreaTags"=>stagingAreaTags, "useDedicatedReplicationServer"=>useDedicatedReplicationServer); aws_config=aws_config)
create_replication_configuration_template(associateDefaultSecurityGroup, bandwidthThrottling, createPublicIP, dataPlaneRouting, defaultLargeStagingDiskType, ebsEncryption, replicationServerInstanceType, replicationServersSecurityGroupsIDs, stagingAreaSubnetId, stagingAreaTags, useDedicatedReplicationServer, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/CreateReplicationConfigurationTemplate", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("associateDefaultSecurityGroup"=>associateDefaultSecurityGroup, "bandwidthThrottling"=>bandwidthThrottling, "createPublicIP"=>createPublicIP, "dataPlaneRouting"=>dataPlaneRouting, "defaultLargeStagingDiskType"=>defaultLargeStagingDiskType, "ebsEncryption"=>ebsEncryption, "replicationServerInstanceType"=>replicationServerInstanceType, "replicationServersSecurityGroupsIDs"=>replicationServersSecurityGroupsIDs, "stagingAreaSubnetId"=>stagingAreaSubnetId, "stagingAreaTags"=>stagingAreaTags, "useDedicatedReplicationServer"=>useDedicatedReplicationServer), params)); aws_config=aws_config)

"""
    delete_job(job_id)
    delete_job(job_id, params::Dict{String,<:Any})

Deletes a single Job by ID.

# Arguments
- `job_id`: Request to delete Job from service by Job ID.

"""
delete_job(jobID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteJob", Dict{String, Any}("jobID"=>jobID); aws_config=aws_config)
delete_job(jobID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteJob", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("jobID"=>jobID), params)); aws_config=aws_config)

"""
    delete_replication_configuration_template(replication_configuration_template_id)
    delete_replication_configuration_template(replication_configuration_template_id, params::Dict{String,<:Any})

Deletes a single Replication Configuration Template by ID

# Arguments
- `replication_configuration_template_id`: Request to delete Replication Configuration
  Template from service by Replication Configuration Template ID.

"""
delete_replication_configuration_template(replicationConfigurationTemplateID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteReplicationConfigurationTemplate", Dict{String, Any}("replicationConfigurationTemplateID"=>replicationConfigurationTemplateID); aws_config=aws_config)
delete_replication_configuration_template(replicationConfigurationTemplateID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteReplicationConfigurationTemplate", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("replicationConfigurationTemplateID"=>replicationConfigurationTemplateID), params)); aws_config=aws_config)

"""
    delete_source_server(source_server_id)
    delete_source_server(source_server_id, params::Dict{String,<:Any})

Deletes a single source server by ID.

# Arguments
- `source_server_id`: Request to delete Source Server from service by Server ID.

"""
delete_source_server(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteSourceServer", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
delete_source_server(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DeleteSourceServer", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    describe_job_log_items(job_id)
    describe_job_log_items(job_id, params::Dict{String,<:Any})

Retrieves detailed Job log with paging.

# Arguments
- `job_id`: Request to describe Job log job ID.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: Request to describe Job log item maximum results.
- `"nextToken"`: Request to describe Job log next token.
"""
describe_job_log_items(jobID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeJobLogItems", Dict{String, Any}("jobID"=>jobID); aws_config=aws_config)
describe_job_log_items(jobID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeJobLogItems", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("jobID"=>jobID), params)); aws_config=aws_config)

"""
    describe_jobs(filters)
    describe_jobs(filters, params::Dict{String,<:Any})

Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit which jobs
are returned. The response is sorted by creationDataTime - latest date first. Jobs are
normaly created by the StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are
also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available
only to *Support* and only used in response to relevant support tickets.

# Arguments
- `filters`: Request to describe Job log filters.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: Request to describe Job log by max results.
- `"nextToken"`: Request to describe Job logby next token.
"""
describe_jobs(filters; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeJobs", Dict{String, Any}("filters"=>filters); aws_config=aws_config)
describe_jobs(filters, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeJobs", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("filters"=>filters), params)); aws_config=aws_config)

"""
    describe_replication_configuration_templates(replication_configuration_template_ids)
    describe_replication_configuration_templates(replication_configuration_template_ids, params::Dict{String,<:Any})

Lists all ReplicationConfigurationTemplates, filtered by Source Server IDs.

# Arguments
- `replication_configuration_template_ids`: Request to describe Replication Configuration
  template by template IDs.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: Request to describe Replication Configuration template by max results.
- `"nextToken"`: Request to describe Replication Configuration template by next token.
"""
describe_replication_configuration_templates(replicationConfigurationTemplateIDs; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeReplicationConfigurationTemplates", Dict{String, Any}("replicationConfigurationTemplateIDs"=>replicationConfigurationTemplateIDs); aws_config=aws_config)
describe_replication_configuration_templates(replicationConfigurationTemplateIDs, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeReplicationConfigurationTemplates", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("replicationConfigurationTemplateIDs"=>replicationConfigurationTemplateIDs), params)); aws_config=aws_config)

"""
    describe_source_servers(filters)
    describe_source_servers(filters, params::Dict{String,<:Any})

Retrieves all SourceServers or multiple SourceServers by ID.

# Arguments
- `filters`: Request to filter Source Servers list.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"maxResults"`: Request to filter Source Servers list by maximum results.
- `"nextToken"`: Request to filter Source Servers list by next token.
"""
describe_source_servers(filters; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeSourceServers", Dict{String, Any}("filters"=>filters); aws_config=aws_config)
describe_source_servers(filters, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DescribeSourceServers", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("filters"=>filters), params)); aws_config=aws_config)

"""
    disconnect_from_service(source_server_id)
    disconnect_from_service(source_server_id, params::Dict{String,<:Any})

Disconnects specific Source Servers from Application Migration Service. Data replication is
stopped immediately. All AWS resources created by Application Migration Service for
enabling the replication of these source servers will be terminated / deleted within 90
minutes. Launched Test or Cutover instances will NOT be terminated. If the agent on the
source server has not been prevented from communciating with the Application Migration
Service service, then it will receive a command to uninstall itself (within approximately
10 minutes). The following properties of the SourceServer will be changed immediately:
dataReplicationInfo.dataReplicationState will be set to DISCONNECTED; The totalStorageBytes
property for each of dataReplicationInfo.replicatedDisks will be set to zero;
dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

# Arguments
- `source_server_id`: Request to disconnect Source Server from service by Server ID.

"""
disconnect_from_service(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DisconnectFromService", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
disconnect_from_service(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/DisconnectFromService", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    finalize_cutover(source_server_id)
    finalize_cutover(source_server_id, params::Dict{String,<:Any})

Finalizes the cutover immediately for specific Source Servers. All AWS resources created by
Application Migration Service for enabling the replication of these source servers will be
terminated / deleted within 90 minutes. Launched Test or Cutover instances will NOT be
terminated. The AWS Replication Agent will receive a command to uninstall itself (within 10
minutes). The following properties of the SourceServer will be changed immediately:
dataReplicationInfo.dataReplicationState will be to DISCONNECTED; The
SourceServer.lifeCycle.state will be changed to CUTOVER; The totalStorageBytes property fo
each of dataReplicationInfo.replicatedDisks will be set to zero;
dataReplicationInfo.lagDuration and dataReplicationInfo.lagDurationwill be nullified.

# Arguments
- `source_server_id`: Request to finalize Cutover by Soure Server ID.

"""
finalize_cutover(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/FinalizeCutover", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
finalize_cutover(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/FinalizeCutover", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    get_launch_configuration(source_server_id)
    get_launch_configuration(source_server_id, params::Dict{String,<:Any})

Lists all LaunchConfigurations available, filtered by Source Server IDs.

# Arguments
- `source_server_id`: Request to get Launch Configuration information by Source Server ID.

"""
get_launch_configuration(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/GetLaunchConfiguration", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
get_launch_configuration(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/GetLaunchConfiguration", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    get_replication_configuration(source_server_id)
    get_replication_configuration(source_server_id, params::Dict{String,<:Any})

Lists all ReplicationConfigurations, filtered by Source Server ID.

# Arguments
- `source_server_id`: Request to get Replication Configuaration by Source Server ID.

"""
get_replication_configuration(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/GetReplicationConfiguration", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
get_replication_configuration(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/GetReplicationConfiguration", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    initialize_service()
    initialize_service(params::Dict{String,<:Any})

Initialize Application Migration Service.

"""
initialize_service(; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/InitializeService"; aws_config=aws_config)
initialize_service(params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/InitializeService", params; aws_config=aws_config)

"""
    list_tags_for_resource(resource_arn)
    list_tags_for_resource(resource_arn, params::Dict{String,<:Any})

List all tags for your Application Migration Service resources.

# Arguments
- `resource_arn`: List tags for resource request by ARN.

"""
list_tags_for_resource(resourceArn; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("GET", "/tags/$(resourceArn)"; aws_config=aws_config)
list_tags_for_resource(resourceArn, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("GET", "/tags/$(resourceArn)", params; aws_config=aws_config)

"""
    mark_as_archived(source_server_id)
    mark_as_archived(source_server_id, params::Dict{String,<:Any})

Archives specific Source Servers by setting the SourceServer.isArchived property to true
for specified SourceServers by ID. This command only works for SourceServers with a
lifecycle.state which equals DISCONNECTED or CUTOVER.

# Arguments
- `source_server_id`: Mark as archived by Source Server ID.

"""
mark_as_archived(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/MarkAsArchived", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
mark_as_archived(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/MarkAsArchived", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    retry_data_replication(source_server_id)
    retry_data_replication(source_server_id, params::Dict{String,<:Any})

Causes the data replication initiation sequence to begin immediately upon next Handshake
for specified SourceServer IDs, regardless of when the previous initiation started. This
command will not work if the SourceServer is not stalled or is in a DISCONNECTED or STOPPED
state.

# Arguments
- `source_server_id`: Retry data replication for Source Server ID.

"""
retry_data_replication(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/RetryDataReplication", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
retry_data_replication(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/RetryDataReplication", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    start_cutover(source_server_ids)
    start_cutover(source_server_ids, params::Dict{String,<:Any})

Launches a Cutover Instance for specific Source Servers. This command starts a LAUNCH job
whose initiatedBy property is StartCutover and changes the SourceServer.lifeCycle.state
property to CUTTING_OVER.

# Arguments
- `source_server_ids`: Start Cutover by Source Server IDs.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"tags"`: Start Cutover by Tags.
"""
start_cutover(sourceServerIDs; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/StartCutover", Dict{String, Any}("sourceServerIDs"=>sourceServerIDs); aws_config=aws_config)
start_cutover(sourceServerIDs, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/StartCutover", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerIDs"=>sourceServerIDs), params)); aws_config=aws_config)

"""
    start_test(source_server_ids)
    start_test(source_server_ids, params::Dict{String,<:Any})

Lauches a Test Instance for specific Source Servers. This command starts a LAUNCH job whose
initiatedBy property is StartTest and changes the SourceServer.lifeCycle.state property to
TESTING.

# Arguments
- `source_server_ids`: Start Test for Source Server IDs.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"tags"`: Start Test by Tags.
"""
start_test(sourceServerIDs; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/StartTest", Dict{String, Any}("sourceServerIDs"=>sourceServerIDs); aws_config=aws_config)
start_test(sourceServerIDs, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/StartTest", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerIDs"=>sourceServerIDs), params)); aws_config=aws_config)

"""
    tag_resource(resource_arn, tags)
    tag_resource(resource_arn, tags, params::Dict{String,<:Any})

Adds or overwrites only the specified tags for the specified Application Migration Service
resource or resources. When you specify an existing tag key, the value is overwritten with
the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and
optional value.

# Arguments
- `resource_arn`: Tag resource by ARN.
- `tags`: Tag resource by Tags.

"""
tag_resource(resourceArn, tags; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/tags/$(resourceArn)", Dict{String, Any}("tags"=>tags); aws_config=aws_config)
tag_resource(resourceArn, tags, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/tags/$(resourceArn)", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("tags"=>tags), params)); aws_config=aws_config)

"""
    terminate_target_instances(source_server_ids)
    terminate_target_instances(source_server_ids, params::Dict{String,<:Any})

Starts a job that terminates specific launched EC2 Test and Cutover instances. This command
will not work for any Source Server with a lifecycle.state of TESTING, CUTTING_OVER, or
CUTOVER.

# Arguments
- `source_server_ids`: Terminate Target instance by Source Server IDs.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"tags"`: Terminate Target instance by Tags.
"""
terminate_target_instances(sourceServerIDs; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/TerminateTargetInstances", Dict{String, Any}("sourceServerIDs"=>sourceServerIDs); aws_config=aws_config)
terminate_target_instances(sourceServerIDs, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/TerminateTargetInstances", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerIDs"=>sourceServerIDs), params)); aws_config=aws_config)

"""
    untag_resource(resource_arn, tag_keys)
    untag_resource(resource_arn, tag_keys, params::Dict{String,<:Any})

Deletes the specified set of tags from the specified set of Application Migration Service
resources.

# Arguments
- `resource_arn`: Untag resource by ARN.
- `tag_keys`: Untag resource by Keys.

"""
untag_resource(resourceArn, tagKeys; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("DELETE", "/tags/$(resourceArn)", Dict{String, Any}("tagKeys"=>tagKeys); aws_config=aws_config)
untag_resource(resourceArn, tagKeys, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("DELETE", "/tags/$(resourceArn)", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("tagKeys"=>tagKeys), params)); aws_config=aws_config)

"""
    update_launch_configuration(source_server_id)
    update_launch_configuration(source_server_id, params::Dict{String,<:Any})

Updates multiple LaunchConfigurations by Source Server ID.

# Arguments
- `source_server_id`: Update Launch configuration by Source Server ID request.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"copyPrivateIp"`: Update Launch configuration copy Private IP request.
- `"copyTags"`: Update Launch configuration copy Tags request.
- `"launchDisposition"`: Update Launch configuration launch disposition request.
- `"licensing"`: Update Launch configuration licensing request.
- `"name"`: Update Launch configuration name request.
- `"targetInstanceTypeRightSizingMethod"`: Update Launch configuration Target instance
  right sizing request.
"""
update_launch_configuration(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateLaunchConfiguration", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
update_launch_configuration(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateLaunchConfiguration", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    update_replication_configuration(source_server_id)
    update_replication_configuration(source_server_id, params::Dict{String,<:Any})

Allows you to update multiple ReplicationConfigurations by Source Server ID.

# Arguments
- `source_server_id`: Update replication configuration Source Server ID request.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"associateDefaultSecurityGroup"`: Update replication configuration associate default
  Application Migration Service Security group request.
- `"bandwidthThrottling"`: Update replication configuration bandwidth throttling request.
- `"createPublicIP"`: Update replication configuration create Public IP request.
- `"dataPlaneRouting"`: Update replication configuration data plane routing request.
- `"defaultLargeStagingDiskType"`: Update replication configuration use default large
  Staging Disk type request.
- `"ebsEncryption"`: Update replication configuration EBS encryption request.
- `"ebsEncryptionKeyArn"`: Update replication configuration EBS encryption key ARN request.
- `"name"`: Update replication configuration name request.
- `"replicatedDisks"`: Update replication configuration replicated disks request.
- `"replicationServerInstanceType"`: Update replication configuration Replication Server
  instance type request.
- `"replicationServersSecurityGroupsIDs"`: Update replication configuration Replication
  Server Security Groups IDs request.
- `"stagingAreaSubnetId"`: Update replication configuration Staging Area subnet request.
- `"stagingAreaTags"`: Update replication configuration Staging Area Tags request.
- `"useDedicatedReplicationServer"`: Update replication configuration use dedicated
  Replication Server request.
"""
update_replication_configuration(sourceServerID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateReplicationConfiguration", Dict{String, Any}("sourceServerID"=>sourceServerID); aws_config=aws_config)
update_replication_configuration(sourceServerID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateReplicationConfiguration", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("sourceServerID"=>sourceServerID), params)); aws_config=aws_config)

"""
    update_replication_configuration_template(replication_configuration_template_id)
    update_replication_configuration_template(replication_configuration_template_id, params::Dict{String,<:Any})

Updates multiple ReplicationConfigurationTemplates by ID.

# Arguments
- `replication_configuration_template_id`: Update replication configuration template
  template ID request.

# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"arn"`: Update replication configuration template ARN request.
- `"associateDefaultSecurityGroup"`: Update replication configuration template associate
  default Application Migration Service Security group request.
- `"bandwidthThrottling"`: Update replication configuration template bandwidth throttling
  request.
- `"createPublicIP"`: Update replication configuration template create Public IP request.
- `"dataPlaneRouting"`: Update replication configuration template data plane routing
  request.
- `"defaultLargeStagingDiskType"`: Update replication configuration template use default
  large Staging Disk type request.
- `"ebsEncryption"`: Update replication configuration template EBS encryption request.
- `"ebsEncryptionKeyArn"`: Update replication configuration template EBS encryption key ARN
  request.
- `"replicationServerInstanceType"`: Update replication configuration template Replication
  Server instance type request.
- `"replicationServersSecurityGroupsIDs"`: Update replication configuration template
  Replication Server Security groups IDs request.
- `"stagingAreaSubnetId"`: Update replication configuration template Staging Area subnet ID
  request.
- `"stagingAreaTags"`: Update replication configuration template Staging Area Tags request.
- `"useDedicatedReplicationServer"`: Update replication configuration template use
  dedicated Replication Server request.
"""
update_replication_configuration_template(replicationConfigurationTemplateID; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateReplicationConfigurationTemplate", Dict{String, Any}("replicationConfigurationTemplateID"=>replicationConfigurationTemplateID); aws_config=aws_config)
update_replication_configuration_template(replicationConfigurationTemplateID, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()) = mgn("POST", "/UpdateReplicationConfigurationTemplate", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("replicationConfigurationTemplateID"=>replicationConfigurationTemplateID), params)); aws_config=aws_config)
