%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE! %% See https://github.com/aws-beam/aws-codegen for more details. %% @doc Amazon Elastic Container Service %% %% Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, %% container management service. %% %% It makes it easy to run, stop, and manage Docker containers. You can host %% your cluster on a serverless infrastructure that's managed by Amazon %% ECS by launching your services or tasks on Fargate. For more control, you %% can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon %% EC2) or External (on-premises) instances that you manage. %% %% Amazon ECS makes it easy to launch and stop container-based applications %% with simple API calls. This makes it easy to get the state of your cluster %% from a centralized service, and gives you access to many familiar Amazon %% EC2 features. %% %% You can use Amazon ECS to schedule the placement of containers across your %% cluster based on your resource needs, isolation policies, and availability %% requirements. With Amazon ECS, you don't need to operate your own %% cluster management and configuration management systems. You also %% don't need to worry about scaling your management infrastructure. -module(aws_ecs). -export([create_capacity_provider/2, create_capacity_provider/3, create_cluster/2, create_cluster/3, create_daemon/2, create_daemon/3, create_express_gateway_service/2, create_express_gateway_service/3, create_service/2, create_service/3, create_task_set/2, create_task_set/3, delete_account_setting/2, delete_account_setting/3, delete_attributes/2, delete_attributes/3, delete_capacity_provider/2, delete_capacity_provider/3, delete_cluster/2, delete_cluster/3, delete_daemon/2, delete_daemon/3, delete_daemon_task_definition/2, delete_daemon_task_definition/3, delete_express_gateway_service/2, delete_express_gateway_service/3, delete_service/2, delete_service/3, delete_task_definitions/2, delete_task_definitions/3, delete_task_set/2, delete_task_set/3, deregister_container_instance/2, deregister_container_instance/3, deregister_task_definition/2, deregister_task_definition/3, describe_capacity_providers/2, describe_capacity_providers/3, describe_clusters/2, describe_clusters/3, describe_container_instances/2, describe_container_instances/3, describe_daemon/2, describe_daemon/3, describe_daemon_deployments/2, describe_daemon_deployments/3, describe_daemon_revisions/2, describe_daemon_revisions/3, describe_daemon_task_definition/2, describe_daemon_task_definition/3, describe_express_gateway_service/2, describe_express_gateway_service/3, describe_service_deployments/2, describe_service_deployments/3, describe_service_revisions/2, describe_service_revisions/3, describe_services/2, describe_services/3, describe_task_definition/2, describe_task_definition/3, describe_task_sets/2, describe_task_sets/3, describe_tasks/2, describe_tasks/3, discover_poll_endpoint/2, discover_poll_endpoint/3, execute_command/2, execute_command/3, get_task_protection/2, get_task_protection/3, list_account_settings/2, list_account_settings/3, list_attributes/2, list_attributes/3, list_clusters/2, list_clusters/3, list_container_instances/2, list_container_instances/3, list_daemon_deployments/2, list_daemon_deployments/3, list_daemon_task_definitions/2, list_daemon_task_definitions/3, list_daemons/2, list_daemons/3, list_service_deployments/2, list_service_deployments/3, list_services/2, list_services/3, list_services_by_namespace/2, list_services_by_namespace/3, list_tags_for_resource/2, list_tags_for_resource/3, list_task_definition_families/2, list_task_definition_families/3, list_task_definitions/2, list_task_definitions/3, list_tasks/2, list_tasks/3, put_account_setting/2, put_account_setting/3, put_account_setting_default/2, put_account_setting_default/3, put_attributes/2, put_attributes/3, put_cluster_capacity_providers/2, put_cluster_capacity_providers/3, register_container_instance/2, register_container_instance/3, register_daemon_task_definition/2, register_daemon_task_definition/3, register_task_definition/2, register_task_definition/3, run_task/2, run_task/3, start_task/2, start_task/3, stop_service_deployment/2, stop_service_deployment/3, stop_task/2, stop_task/3, submit_attachment_state_changes/2, submit_attachment_state_changes/3, submit_container_state_change/2, submit_container_state_change/3, submit_task_state_change/2, submit_task_state_change/3, tag_resource/2, tag_resource/3, untag_resource/2, untag_resource/3, update_capacity_provider/2, update_capacity_provider/3, update_cluster/2, update_cluster/3, update_cluster_settings/2, update_cluster_settings/3, update_container_agent/2, update_container_agent/3, update_container_instances_state/2, update_container_instances_state/3, update_daemon/2, update_daemon/3, update_express_gateway_service/2, update_express_gateway_service/3, update_service/2, update_service/3, update_service_primary_task_set/2, update_service_primary_task_set/3, update_task_protection/2, update_task_protection/3, update_task_set/2, update_task_set/3]). -include_lib("hackney/include/hackney_lib.hrl"). %% Example: %% instance_requirements_request() :: #{ %% <<"acceleratorCount">> => accelerator_count_request(), %% <<"acceleratorManufacturers">> => list(list(any())()), %% <<"acceleratorNames">> => list(list(any())()), %% <<"acceleratorTotalMemoryMiB">> => accelerator_total_memory_mi_b_request(), %% <<"acceleratorTypes">> => list(list(any())()), %% <<"allowedInstanceTypes">> => list(string()), %% <<"bareMetal">> => list(any()), %% <<"baselineEbsBandwidthMbps">> => baseline_ebs_bandwidth_mbps_request(), %% <<"burstablePerformance">> => list(any()), %% <<"cpuManufacturers">> => list(list(any())()), %% <<"excludedInstanceTypes">> => list(string()), %% <<"instanceGenerations">> => list(list(any())()), %% <<"localStorage">> => list(any()), %% <<"localStorageTypes">> => list(list(any())()), %% <<"maxSpotPriceAsPercentageOfOptimalOnDemandPrice">> => integer(), %% <<"memoryGiBPerVCpu">> => memory_gi_b_per_v_cpu_request(), %% <<"memoryMiB">> => memory_mi_b_request(), %% <<"networkBandwidthGbps">> => network_bandwidth_gbps_request(), %% <<"networkInterfaceCount">> => network_interface_count_request(), %% <<"onDemandMaxPricePercentageOverLowestPrice">> => integer(), %% <<"requireHibernateSupport">> => boolean(), %% <<"spotMaxPricePercentageOverLowestPrice">> => integer(), %% <<"totalLocalStorageGB">> => total_local_storage_g_b_request(), %% <<"vCpuCount">> => v_cpu_count_range_request() %% } -type instance_requirements_request() :: #{binary() => any()}. %% Example: %% service_registry() :: #{ %% <<"containerName">> => string(), %% <<"containerPort">> => integer(), %% <<"port">> => integer(), %% <<"registryArn">> => string() %% } -type service_registry() :: #{binary() => any()}. %% Example: %% describe_task_definition_response() :: #{ %% <<"tags">> => list(tag()), %% <<"taskDefinition">> => task_definition() %% } -type describe_task_definition_response() :: #{binary() => any()}. %% Example: %% service_connect_test_traffic_rules() :: #{ %% <<"header">> => service_connect_test_traffic_header_rules() %% } -type service_connect_test_traffic_rules() :: #{binary() => any()}. %% Example: %% container_instance_health_status() :: #{ %% <<"details">> => list(instance_health_check_result()), %% <<"overallStatus">> => list(any()) %% } -type container_instance_health_status() :: #{binary() => any()}. %% Example: %% delete_capacity_provider_response() :: #{ %% <<"capacityProvider">> => capacity_provider() %% } -type delete_capacity_provider_response() :: #{binary() => any()}. %% Example: %% update_container_instances_state_response() :: #{ %% <<"containerInstances">> => list(container_instance()), %% <<"failures">> => list(failure()) %% } -type update_container_instances_state_response() :: #{binary() => any()}. %% Example: %% list_daemon_deployments_response() :: #{ %% <<"daemonDeployments">> => list(daemon_deployment_summary()), %% <<"nextToken">> => string() %% } -type list_daemon_deployments_response() :: #{binary() => any()}. %% Example: %% list_service_deployments_request() :: #{ %% <<"cluster">> => string(), %% <<"createdAt">> => created_at(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"service">> := string(), %% <<"status">> => list(list(any())()) %% } -type list_service_deployments_request() :: #{binary() => any()}. %% Example: %% task_set() :: #{ %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"clusterArn">> => string(), %% <<"computedDesiredCount">> => integer(), %% <<"createdAt">> => non_neg_integer(), %% <<"externalId">> => string(), %% <<"fargateEphemeralStorage">> => deployment_ephemeral_storage(), %% <<"id">> => string(), %% <<"launchType">> => list(any()), %% <<"loadBalancers">> => list(load_balancer()), %% <<"networkConfiguration">> => network_configuration(), %% <<"pendingCount">> => integer(), %% <<"platformFamily">> => string(), %% <<"platformVersion">> => string(), %% <<"runningCount">> => integer(), %% <<"scale">> => scale(), %% <<"serviceArn">> => string(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"stabilityStatus">> => list(any()), %% <<"stabilityStatusAt">> => non_neg_integer(), %% <<"startedBy">> => string(), %% <<"status">> => string(), %% <<"tags">> => list(tag()), %% <<"taskDefinition">> => string(), %% <<"taskSetArn">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type task_set() :: #{binary() => any()}. %% Example: %% task() :: #{ %% <<"healthStatus">> => list(any()), %% <<"containers">> => list(container()), %% <<"attachments">> => list(attachment()), %% <<"taskDefinitionArn">> => string(), %% <<"stoppedReason">> => string(), %% <<"pullStoppedAt">> => non_neg_integer(), %% <<"clusterArn">> => string(), %% <<"stoppingAt">> => non_neg_integer(), %% <<"availabilityZone">> => string(), %% <<"connectivity">> => list(any()), %% <<"executionStoppedAt">> => non_neg_integer(), %% <<"stoppedAt">> => non_neg_integer(), %% <<"desiredStatus">> => string(), %% <<"platformVersion">> => string(), %% <<"platformFamily">> => string(), %% <<"ephemeralStorage">> => ephemeral_storage(), %% <<"containerInstanceArn">> => string(), %% <<"overrides">> => task_override(), %% <<"attributes">> => list(attribute()), %% <<"pullStartedAt">> => non_neg_integer(), %% <<"stopCode">> => list(any()), %% <<"version">> => float(), %% <<"enableExecuteCommand">> => boolean(), %% <<"launchType">> => list(any()), %% <<"capacityProviderName">> => string(), %% <<"cpu">> => string(), %% <<"tags">> => list(tag()), %% <<"lastStatus">> => string(), %% <<"taskArn">> => string(), %% <<"connectivityAt">> => non_neg_integer(), %% <<"memory">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"group">> => string(), %% <<"startedBy">> => string(), %% <<"inferenceAccelerators">> => list(inference_accelerator()), %% <<"fargateEphemeralStorage">> => task_ephemeral_storage(), %% <<"startedAt">> => non_neg_integer() %% } -type task() :: #{binary() => any()}. %% Example: %% delete_capacity_provider_request() :: #{ %% <<"capacityProvider">> := string(), %% <<"cluster">> => string() %% } -type delete_capacity_provider_request() :: #{binary() => any()}. %% Example: %% tag_resource_request() :: #{ %% <<"resourceArn">> := string(), %% <<"tags">> := list(tag()) %% } -type tag_resource_request() :: #{binary() => any()}. %% Example: %% update_in_progress_exception() :: #{ %% <<"message">> => string() %% } -type update_in_progress_exception() :: #{binary() => any()}. %% Example: %% stop_task_request() :: #{ %% <<"cluster">> => string(), %% <<"reason">> => string(), %% <<"task">> := string() %% } -type stop_task_request() :: #{binary() => any()}. %% Example: %% ingress_path_summary() :: #{ %% <<"accessType">> => list(any()), %% <<"endpoint">> => string() %% } -type ingress_path_summary() :: #{binary() => any()}. %% Example: %% describe_container_instances_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstances">> := list(string()), %% <<"include">> => list(list(any())()) %% } -type describe_container_instances_request() :: #{binary() => any()}. %% Example: %% system_control() :: #{ %% <<"namespace">> => string(), %% <<"value">> => string() %% } -type system_control() :: #{binary() => any()}. %% Example: %% container() :: #{ %% <<"containerArn">> => string(), %% <<"cpu">> => string(), %% <<"exitCode">> => integer(), %% <<"gpuIds">> => list(string()), %% <<"healthStatus">> => list(any()), %% <<"image">> => string(), %% <<"imageDigest">> => string(), %% <<"lastStatus">> => string(), %% <<"managedAgents">> => list(managed_agent()), %% <<"memory">> => string(), %% <<"memoryReservation">> => string(), %% <<"name">> => string(), %% <<"networkBindings">> => list(network_binding()), %% <<"networkInterfaces">> => list(network_interface()), %% <<"reason">> => string(), %% <<"runtimeId">> => string(), %% <<"taskArn">> => string() %% } -type container() :: #{binary() => any()}. %% Example: %% service_deployment_circuit_breaker() :: #{ %% <<"failureCount">> => integer(), %% <<"status">> => list(any()), %% <<"threshold">> => integer() %% } -type service_deployment_circuit_breaker() :: #{binary() => any()}. %% Example: %% daemon_not_found_exception() :: #{ %% <<"message">> => string() %% } -type daemon_not_found_exception() :: #{binary() => any()}. %% Example: %% inference_accelerator() :: #{ %% <<"deviceName">> => string(), %% <<"deviceType">> => string() %% } -type inference_accelerator() :: #{binary() => any()}. %% Example: %% managed_metric_alarm() :: #{ %% <<"arn">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_metric_alarm() :: #{binary() => any()}. %% Example: %% daemon_circuit_breaker() :: #{ %% <<"failureCount">> => integer(), %% <<"status">> => list(any()), %% <<"threshold">> => integer() %% } -type daemon_circuit_breaker() :: #{binary() => any()}. %% Example: %% run_task_response() :: #{ %% <<"failures">> => list(failure()), %% <<"tasks">> => list(task()) %% } -type run_task_response() :: #{binary() => any()}. %% Example: %% managed_ingress_path() :: #{ %% <<"accessType">> => list(any()), %% <<"certificate">> => managed_certificate(), %% <<"endpoint">> => string(), %% <<"listener">> => managed_listener(), %% <<"loadBalancer">> => managed_load_balancer(), %% <<"loadBalancerSecurityGroups">> => list(managed_security_group()), %% <<"rule">> => managed_listener_rule(), %% <<"targetGroups">> => list(managed_target_group()) %% } -type managed_ingress_path() :: #{binary() => any()}. %% Example: %% proxy_configuration() :: #{ %% <<"containerName">> => string(), %% <<"properties">> => list(key_value_pair()), %% <<"type">> => list(any()) %% } -type proxy_configuration() :: #{binary() => any()}. %% Example: %% express_gateway_service_network_configuration() :: #{ %% <<"securityGroups">> => list(string()), %% <<"subnets">> => list(string()) %% } -type express_gateway_service_network_configuration() :: #{binary() => any()}. %% Example: %% attribute_limit_exceeded_exception() :: #{ %% <<"message">> => string() %% } -type attribute_limit_exceeded_exception() :: #{binary() => any()}. %% Example: %% setting() :: #{ %% <<"name">> => list(any()), %% <<"principalArn">> => string(), %% <<"type">> => list(any()), %% <<"value">> => string() %% } -type setting() :: #{binary() => any()}. %% Example: %% deployment() :: #{ %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"createdAt">> => non_neg_integer(), %% <<"desiredCount">> => integer(), %% <<"failedTasks">> => integer(), %% <<"fargateEphemeralStorage">> => deployment_ephemeral_storage(), %% <<"id">> => string(), %% <<"launchType">> => list(any()), %% <<"networkConfiguration">> => network_configuration(), %% <<"pendingCount">> => integer(), %% <<"platformFamily">> => string(), %% <<"platformVersion">> => string(), %% <<"rolloutState">> => list(any()), %% <<"rolloutStateReason">> => string(), %% <<"runningCount">> => integer(), %% <<"serviceConnectConfiguration">> => service_connect_configuration(), %% <<"serviceConnectResources">> => list(service_connect_service_resource()), %% <<"status">> => string(), %% <<"taskDefinition">> => string(), %% <<"updatedAt">> => non_neg_integer(), %% <<"volumeConfigurations">> => list(service_volume_configuration()), %% <<"vpcLatticeConfigurations">> => list(vpc_lattice_configuration()) %% } -type deployment() :: #{binary() => any()}. %% Example: %% service_event() :: #{ %% <<"createdAt">> => non_neg_integer(), %% <<"id">> => string(), %% <<"message">> => string() %% } -type service_event() :: #{binary() => any()}. %% Example: %% service_current_revision_summary() :: #{ %% <<"arn">> => string(), %% <<"pendingTaskCount">> => integer(), %% <<"requestedTaskCount">> => integer(), %% <<"runningTaskCount">> => integer() %% } -type service_current_revision_summary() :: #{binary() => any()}. %% Example: %% describe_services_request() :: #{ %% <<"cluster">> => string(), %% <<"include">> => list(list(any())()), %% <<"services">> := list(string()) %% } -type describe_services_request() :: #{binary() => any()}. %% Example: %% stop_service_deployment_request() :: #{ %% <<"serviceDeploymentArn">> := string(), %% <<"stopType">> => list(any()) %% } -type stop_service_deployment_request() :: #{binary() => any()}. %% Example: %% untag_resource_response() :: #{ %% } -type untag_resource_response() :: #{binary() => any()}. %% Example: %% daemon_deployment_alarms() :: #{ %% <<"alarmNames">> => list(string()), %% <<"status">> => list(any()), %% <<"triggeredAlarmNames">> => list(string()) %% } -type daemon_deployment_alarms() :: #{binary() => any()}. %% Example: %% task_override() :: #{ %% <<"containerOverrides">> => list(container_override()), %% <<"cpu">> => string(), %% <<"ephemeralStorage">> => ephemeral_storage(), %% <<"executionRoleArn">> => string(), %% <<"inferenceAcceleratorOverrides">> => list(inference_accelerator_override()), %% <<"memory">> => string(), %% <<"taskRoleArn">> => string() %% } -type task_override() :: #{binary() => any()}. %% Example: %% describe_service_deployments_response() :: #{ %% <<"failures">> => list(failure()), %% <<"serviceDeployments">> => list(service_deployment()) %% } -type describe_service_deployments_response() :: #{binary() => any()}. %% Example: %% create_managed_instances_provider_configuration() :: #{ %% <<"autoRepairConfiguration">> => auto_repair_configuration(), %% <<"infrastructureOptimization">> => infrastructure_optimization(), %% <<"infrastructureRoleArn">> => string(), %% <<"instanceLaunchTemplate">> => instance_launch_template(), %% <<"propagateTags">> => list(any()) %% } -type create_managed_instances_provider_configuration() :: #{binary() => any()}. %% Example: %% create_cluster_response() :: #{ %% <<"cluster">> => cluster() %% } -type create_cluster_response() :: #{binary() => any()}. %% Example: %% resource_in_use_exception() :: #{ %% <<"message">> => string() %% } -type resource_in_use_exception() :: #{binary() => any()}. %% Example: %% list_daemon_task_definitions_response() :: #{ %% <<"daemonTaskDefinitions">> => list(daemon_task_definition_summary()), %% <<"nextToken">> => string() %% } -type list_daemon_task_definitions_response() :: #{binary() => any()}. %% Example: %% put_account_setting_default_request() :: #{ %% <<"name">> := list(any()), %% <<"value">> := string() %% } -type put_account_setting_default_request() :: #{binary() => any()}. %% Example: %% register_container_instance_response() :: #{ %% <<"containerInstance">> => container_instance() %% } -type register_container_instance_response() :: #{binary() => any()}. %% Example: %% managed_instances_network_configuration() :: #{ %% <<"securityGroups">> => list(string()), %% <<"subnets">> => list(string()) %% } -type managed_instances_network_configuration() :: #{binary() => any()}. %% Example: %% create_task_set_request() :: #{ %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"clientToken">> => string(), %% <<"cluster">> := string(), %% <<"externalId">> => string(), %% <<"launchType">> => list(any()), %% <<"loadBalancers">> => list(load_balancer()), %% <<"networkConfiguration">> => network_configuration(), %% <<"platformVersion">> => string(), %% <<"scale">> => scale(), %% <<"service">> := string(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"tags">> => list(tag()), %% <<"taskDefinition">> := string() %% } -type create_task_set_request() :: #{binary() => any()}. %% Example: %% start_task_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstances">> := list(string()), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"group">> => string(), %% <<"networkConfiguration">> => network_configuration(), %% <<"overrides">> => task_override(), %% <<"propagateTags">> => list(any()), %% <<"referenceId">> => string(), %% <<"startedBy">> => string(), %% <<"tags">> => list(tag()), %% <<"taskDefinition">> := string(), %% <<"volumeConfigurations">> => list(task_volume_configuration()) %% } -type start_task_request() :: #{binary() => any()}. %% Example: %% delete_account_setting_response() :: #{ %% <<"setting">> => setting() %% } -type delete_account_setting_response() :: #{binary() => any()}. %% Example: %% update_capacity_provider_request() :: #{ %% <<"autoScalingGroupProvider">> => auto_scaling_group_provider_update(), %% <<"cluster">> => string(), %% <<"managedInstancesProvider">> => update_managed_instances_provider_configuration(), %% <<"name">> := string() %% } -type update_capacity_provider_request() :: #{binary() => any()}. %% Example: %% put_account_setting_response() :: #{ %% <<"setting">> => setting() %% } -type put_account_setting_response() :: #{binary() => any()}. %% Example: %% list_services_by_namespace_request() :: #{ %% <<"maxResults">> => integer(), %% <<"namespace">> := string(), %% <<"nextToken">> => string() %% } -type list_services_by_namespace_request() :: #{binary() => any()}. %% Example: %% get_task_protection_response() :: #{ %% <<"failures">> => list(failure()), %% <<"protectedTasks">> => list(protected_task()) %% } -type get_task_protection_response() :: #{binary() => any()}. %% Example: %% service_connect_service_resource() :: #{ %% <<"discoveryArn">> => string(), %% <<"discoveryName">> => string() %% } -type service_connect_service_resource() :: #{binary() => any()}. %% Example: %% cluster_not_found_exception() :: #{ %% <<"message">> => string() %% } -type cluster_not_found_exception() :: #{binary() => any()}. %% Example: %% host_volume_properties() :: #{ %% <<"sourcePath">> => string() %% } -type host_volume_properties() :: #{binary() => any()}. %% Example: %% network_interface() :: #{ %% <<"attachmentId">> => string(), %% <<"ipv6Address">> => string(), %% <<"privateIpv4Address">> => string() %% } -type network_interface() :: #{binary() => any()}. %% Example: %% update_task_set_request() :: #{ %% <<"cluster">> := string(), %% <<"scale">> := scale(), %% <<"service">> := string(), %% <<"taskSet">> := string() %% } -type update_task_set_request() :: #{binary() => any()}. %% Example: %% daemon_revision_detail() :: #{ %% <<"arn">> => string(), %% <<"capacityProviders">> => list(daemon_capacity_provider()), %% <<"totalRunningCount">> => integer() %% } -type daemon_revision_detail() :: #{binary() => any()}. %% Example: %% service_deployment_not_found_exception() :: #{ %% <<"message">> => string() %% } -type service_deployment_not_found_exception() :: #{binary() => any()}. %% Example: %% memory_gi_b_per_v_cpu_request() :: #{ %% <<"max">> => float(), %% <<"min">> => float() %% } -type memory_gi_b_per_v_cpu_request() :: #{binary() => any()}. %% Example: %% execute_command_configuration() :: #{ %% <<"kmsKeyId">> => string(), %% <<"logConfiguration">> => execute_command_log_configuration(), %% <<"logging">> => list(any()) %% } -type execute_command_configuration() :: #{binary() => any()}. %% Example: %% attachment() :: #{ %% <<"details">> => list(key_value_pair()), %% <<"id">> => string(), %% <<"status">> => string(), %% <<"type">> => string() %% } -type attachment() :: #{binary() => any()}. %% Example: %% service_revision_summary() :: #{ %% <<"arn">> => string(), %% <<"pendingTaskCount">> => integer(), %% <<"requestedProductionTrafficWeight">> => float(), %% <<"requestedTaskCount">> => integer(), %% <<"requestedTestTrafficWeight">> => float(), %% <<"runningTaskCount">> => integer() %% } -type service_revision_summary() :: #{binary() => any()}. %% Example: %% daemon_deployment_revision_detail() :: #{ %% <<"arn">> => string(), %% <<"capacityProviders">> => list(daemon_deployment_capacity_provider()), %% <<"totalDrainingInstanceCount">> => integer(), %% <<"totalRunningInstanceCount">> => integer() %% } -type daemon_deployment_revision_detail() :: #{binary() => any()}. %% Example: %% target_not_connected_exception() :: #{ %% <<"message">> => string() %% } -type target_not_connected_exception() :: #{binary() => any()}. %% Example: %% linear_configuration() :: #{ %% <<"stepBakeTimeInMinutes">> => integer(), %% <<"stepPercent">> => float() %% } -type linear_configuration() :: #{binary() => any()}. %% Example: %% service_not_found_exception() :: #{ %% <<"message">> => string() %% } -type service_not_found_exception() :: #{binary() => any()}. %% Example: %% service() :: #{ %% <<"propagateTags">> => list(any()), %% <<"placementStrategy">> => list(placement_strategy()), %% <<"taskSets">> => list(task_set()), %% <<"clusterArn">> => string(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"schedulingStrategy">> => list(any()), %% <<"availabilityZoneRebalancing">> => list(any()), %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"serviceName">> => string(), %% <<"roleArn">> => string(), %% <<"currentServiceRevisions">> => list(service_current_revision_summary()), %% <<"platformVersion">> => string(), %% <<"deployments">> => list(deployment()), %% <<"desiredCount">> => integer(), %% <<"platformFamily">> => string(), %% <<"status">> => string(), %% <<"networkConfiguration">> => network_configuration(), %% <<"serviceArn">> => string(), %% <<"deploymentConfiguration">> => deployment_configuration(), %% <<"events">> => list(service_event()), %% <<"enableExecuteCommand">> => boolean(), %% <<"launchType">> => list(any()), %% <<"taskDefinition">> => string(), %% <<"tags">> => list(tag()), %% <<"healthCheckGracePeriodSeconds">> => integer(), %% <<"enableECSManagedTags">> => boolean(), %% <<"resourceManagementType">> => list(any()), %% <<"pendingCount">> => integer(), %% <<"createdBy">> => string(), %% <<"currentServiceDeployment">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"loadBalancers">> => list(load_balancer()), %% <<"placementConstraints">> => list(placement_constraint()), %% <<"runningCount">> => integer(), %% <<"deploymentController">> => deployment_controller() %% } -type service() :: #{binary() => any()}. %% Example: %% host_entry() :: #{ %% <<"hostname">> => string(), %% <<"ipAddress">> => string() %% } -type host_entry() :: #{binary() => any()}. %% Example: %% list_daemons_response() :: #{ %% <<"daemonSummariesList">> => list(daemon_summary()), %% <<"nextToken">> => string() %% } -type list_daemons_response() :: #{binary() => any()}. %% Example: %% describe_express_gateway_service_request() :: #{ %% <<"include">> => list(list(any())()), %% <<"serviceArn">> := string() %% } -type describe_express_gateway_service_request() :: #{binary() => any()}. %% Example: %% describe_daemon_deployments_request() :: #{ %% <<"daemonDeploymentArns">> := list(string()) %% } -type describe_daemon_deployments_request() :: #{binary() => any()}. %% Example: %% list_task_definitions_request() :: #{ %% <<"familyPrefix">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"sort">> => list(any()), %% <<"status">> => list(any()) %% } -type list_task_definitions_request() :: #{binary() => any()}. %% Example: %% delete_daemon_task_definition_request() :: #{ %% <<"daemonTaskDefinition">> := string() %% } -type delete_daemon_task_definition_request() :: #{binary() => any()}. %% Example: %% daemon_rollback() :: #{ %% <<"reason">> => string(), %% <<"rollbackCapacityProviders">> => list(string()), %% <<"rollbackTargetDaemonRevisionArn">> => string(), %% <<"startedAt">> => non_neg_integer() %% } -type daemon_rollback() :: #{binary() => any()}. %% Example: %% service_deployment_brief() :: #{ %% <<"clusterArn">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"finishedAt">> => non_neg_integer(), %% <<"serviceArn">> => string(), %% <<"serviceDeploymentArn">> => string(), %% <<"startedAt">> => non_neg_integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"targetServiceRevisionArn">> => string() %% } -type service_deployment_brief() :: #{binary() => any()}. %% Example: %% task_volume_configuration() :: #{ %% <<"managedEBSVolume">> => task_managed_ebs_volume_configuration(), %% <<"name">> => string() %% } -type task_volume_configuration() :: #{binary() => any()}. %% Example: %% daemon_alarm_configuration() :: #{ %% <<"alarmNames">> => list(string()), %% <<"enable">> => boolean() %% } -type daemon_alarm_configuration() :: #{binary() => any()}. %% Example: %% managed_agent_state_change() :: #{ %% <<"containerName">> => string(), %% <<"managedAgentName">> => list(any()), %% <<"reason">> => string(), %% <<"status">> => string() %% } -type managed_agent_state_change() :: #{binary() => any()}. %% Example: %% untag_resource_request() :: #{ %% <<"resourceArn">> := string(), %% <<"tagKeys">> := list(string()) %% } -type untag_resource_request() :: #{binary() => any()}. %% Example: %% delete_task_set_response() :: #{ %% <<"taskSet">> => task_set() %% } -type delete_task_set_response() :: #{binary() => any()}. %% Example: %% describe_daemon_response() :: #{ %% <<"daemon">> => daemon_detail() %% } -type describe_daemon_response() :: #{binary() => any()}. %% Example: %% express_gateway_service_status() :: #{ %% <<"statusCode">> => list(any()), %% <<"statusReason">> => string() %% } -type express_gateway_service_status() :: #{binary() => any()}. %% Example: %% update_container_instances_state_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstances">> := list(string()), %% <<"status">> := list(any()) %% } -type update_container_instances_state_request() :: #{binary() => any()}. %% Example: %% docker_volume_configuration() :: #{ %% <<"autoprovision">> => boolean(), %% <<"driver">> => string(), %% <<"driverOpts">> => map(), %% <<"labels">> => map(), %% <<"scope">> => list(any()) %% } -type docker_volume_configuration() :: #{binary() => any()}. %% Example: %% update_task_protection_request() :: #{ %% <<"cluster">> := string(), %% <<"expiresInMinutes">> => integer(), %% <<"protectionEnabled">> := boolean(), %% <<"tasks">> := list(string()) %% } -type update_task_protection_request() :: #{binary() => any()}. %% Example: %% update_cluster_request() :: #{ %% <<"cluster">> := string(), %% <<"configuration">> => cluster_configuration(), %% <<"serviceConnectDefaults">> => cluster_service_connect_defaults_request(), %% <<"settings">> => list(cluster_setting()) %% } -type update_cluster_request() :: #{binary() => any()}. %% Example: %% register_container_instance_request() :: #{ %% <<"attributes">> => list(attribute()), %% <<"cluster">> => string(), %% <<"containerInstanceArn">> => string(), %% <<"instanceIdentityDocument">> => string(), %% <<"instanceIdentityDocumentSignature">> => string(), %% <<"platformDevices">> => list(platform_device()), %% <<"tags">> => list(tag()), %% <<"totalResources">> => list(resource()), %% <<"versionInfo">> => version_info() %% } -type register_container_instance_request() :: #{binary() => any()}. %% Example: %% mount_point() :: #{ %% <<"containerPath">> => string(), %% <<"readOnly">> => boolean(), %% <<"sourceVolume">> => string() %% } -type mount_point() :: #{binary() => any()}. %% Example: %% timeout_configuration() :: #{ %% <<"idleTimeoutSeconds">> => integer(), %% <<"perRequestTimeoutSeconds">> => integer() %% } -type timeout_configuration() :: #{binary() => any()}. %% Example: %% managed_agent() :: #{ %% <<"lastStartedAt">> => non_neg_integer(), %% <<"lastStatus">> => string(), %% <<"name">> => list(any()), %% <<"reason">> => string() %% } -type managed_agent() :: #{binary() => any()}. %% Example: %% daemon_detail() :: #{ %% <<"clusterArn">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"currentRevisions">> => list(daemon_revision_detail()), %% <<"daemonArn">> => string(), %% <<"deploymentArn">> => string(), %% <<"status">> => list(any()), %% <<"updatedAt">> => non_neg_integer() %% } -type daemon_detail() :: #{binary() => any()}. %% Example: %% daemon_deployment_configuration() :: #{ %% <<"alarms">> => daemon_alarm_configuration(), %% <<"bakeTimeInMinutes">> => integer(), %% <<"drainPercent">> => float() %% } -type daemon_deployment_configuration() :: #{binary() => any()}. %% Example: %% cluster_configuration() :: #{ %% <<"executeCommandConfiguration">> => execute_command_configuration(), %% <<"managedStorageConfiguration">> => managed_storage_configuration() %% } -type cluster_configuration() :: #{binary() => any()}. %% Example: %% deployment_alarms() :: #{ %% <<"alarmNames">> => list(string()), %% <<"enable">> => boolean(), %% <<"rollback">> => boolean() %% } -type deployment_alarms() :: #{binary() => any()}. %% Example: %% put_account_setting_request() :: #{ %% <<"name">> := list(any()), %% <<"principalArn">> => string(), %% <<"value">> := string() %% } -type put_account_setting_request() :: #{binary() => any()}. %% Example: %% managed_instances_provider() :: #{ %% <<"autoRepairConfiguration">> => auto_repair_configuration(), %% <<"infrastructureOptimization">> => infrastructure_optimization(), %% <<"infrastructureRoleArn">> => string(), %% <<"instanceLaunchTemplate">> => instance_launch_template(), %% <<"propagateTags">> => list(any()) %% } -type managed_instances_provider() :: #{binary() => any()}. %% Example: %% list_services_request() :: #{ %% <<"cluster">> => string(), %% <<"launchType">> => list(any()), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"resourceManagementType">> => list(any()), %% <<"schedulingStrategy">> => list(any()) %% } -type list_services_request() :: #{binary() => any()}. %% Example: %% execute_command_response() :: #{ %% <<"clusterArn">> => string(), %% <<"containerArn">> => string(), %% <<"containerName">> => string(), %% <<"interactive">> => boolean(), %% <<"session">> => session(), %% <<"taskArn">> => string() %% } -type execute_command_response() :: #{binary() => any()}. %% Example: %% describe_services_response() :: #{ %% <<"failures">> => list(failure()), %% <<"services">> => list(service()) %% } -type describe_services_response() :: #{binary() => any()}. %% Example: %% daemon_revision() :: #{ %% <<"clusterArn">> => string(), %% <<"containerImages">> => list(daemon_container_image()), %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"daemonRevisionArn">> => string(), %% <<"daemonTaskDefinitionArn">> => string(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"propagateTags">> => list(any()) %% } -type daemon_revision() :: #{binary() => any()}. %% Example: %% task_managed_ebs_volume_termination_policy() :: #{ %% <<"deleteOnTermination">> => boolean() %% } -type task_managed_ebs_volume_termination_policy() :: #{binary() => any()}. %% Example: %% deregister_task_definition_response() :: #{ %% <<"taskDefinition">> => task_definition() %% } -type deregister_task_definition_response() :: #{binary() => any()}. %% Example: %% describe_daemon_task_definition_response() :: #{ %% <<"daemonTaskDefinition">> => daemon_task_definition() %% } -type describe_daemon_task_definition_response() :: #{binary() => any()}. %% Example: %% delete_express_gateway_service_request() :: #{ %% <<"serviceArn">> := string() %% } -type delete_express_gateway_service_request() :: #{binary() => any()}. %% Example: %% daemon_capacity_provider() :: #{ %% <<"arn">> => string(), %% <<"runningCount">> => integer() %% } -type daemon_capacity_provider() :: #{binary() => any()}. %% Example: %% namespace_not_found_exception() :: #{ %% <<"message">> => string() %% } -type namespace_not_found_exception() :: #{binary() => any()}. %% Example: %% unsupported_feature_exception() :: #{ %% <<"message">> => string() %% } -type unsupported_feature_exception() :: #{binary() => any()}. %% Example: %% daemon_summary() :: #{ %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"status">> => list(any()), %% <<"updatedAt">> => non_neg_integer() %% } -type daemon_summary() :: #{binary() => any()}. %% Example: %% deployment_configuration() :: #{ %% <<"alarms">> => deployment_alarms(), %% <<"bakeTimeInMinutes">> => integer(), %% <<"canaryConfiguration">> => canary_configuration(), %% <<"deploymentCircuitBreaker">> => deployment_circuit_breaker(), %% <<"lifecycleHooks">> => list(deployment_lifecycle_hook()), %% <<"linearConfiguration">> => linear_configuration(), %% <<"maximumPercent">> => integer(), %% <<"minimumHealthyPercent">> => integer(), %% <<"strategy">> => list(any()) %% } -type deployment_configuration() :: #{binary() => any()}. %% Example: %% list_account_settings_request() :: #{ %% <<"effectiveSettings">> => boolean(), %% <<"maxResults">> => integer(), %% <<"name">> => list(any()), %% <<"nextToken">> => string(), %% <<"principalArn">> => string(), %% <<"value">> => string() %% } -type list_account_settings_request() :: #{binary() => any()}. %% Example: %% list_account_settings_response() :: #{ %% <<"nextToken">> => string(), %% <<"settings">> => list(setting()) %% } -type list_account_settings_response() :: #{binary() => any()}. %% Example: %% rollback() :: #{ %% <<"reason">> => string(), %% <<"serviceRevisionArn">> => string(), %% <<"startedAt">> => non_neg_integer() %% } -type rollback() :: #{binary() => any()}. %% Example: %% service_connect_test_traffic_header_match_rules() :: #{ %% <<"exact">> => string() %% } -type service_connect_test_traffic_header_match_rules() :: #{binary() => any()}. %% Example: %% service_connect_access_log_configuration() :: #{ %% <<"format">> => list(any()), %% <<"includeQueryParameters">> => list(any()) %% } -type service_connect_access_log_configuration() :: #{binary() => any()}. %% Example: %% list_daemon_task_definitions_request() :: #{ %% <<"family">> => string(), %% <<"familyPrefix">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"revision">> => list(any()), %% <<"sort">> => list(any()), %% <<"status">> => list(any()) %% } -type list_daemon_task_definitions_request() :: #{binary() => any()}. %% Example: %% daemon_container_image() :: #{ %% <<"containerName">> => string(), %% <<"image">> => string(), %% <<"imageDigest">> => string() %% } -type daemon_container_image() :: #{binary() => any()}. %% Example: %% create_cluster_request() :: #{ %% <<"capacityProviders">> => list(string()), %% <<"clusterName">> => string(), %% <<"configuration">> => cluster_configuration(), %% <<"defaultCapacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"serviceConnectDefaults">> => cluster_service_connect_defaults_request(), %% <<"settings">> => list(cluster_setting()), %% <<"tags">> => list(tag()) %% } -type create_cluster_request() :: #{binary() => any()}. %% Example: %% container_restart_policy() :: #{ %% <<"enabled">> => boolean(), %% <<"ignoredExitCodes">> => list(integer()), %% <<"restartAttemptPeriod">> => integer() %% } -type container_restart_policy() :: #{binary() => any()}. %% Example: %% list_service_deployments_response() :: #{ %% <<"nextToken">> => string(), %% <<"serviceDeployments">> => list(service_deployment_brief()) %% } -type list_service_deployments_response() :: #{binary() => any()}. %% Example: %% express_gateway_service_aws_logs_configuration() :: #{ %% <<"logGroup">> => string(), %% <<"logStreamPrefix">> => string() %% } -type express_gateway_service_aws_logs_configuration() :: #{binary() => any()}. %% Example: %% service_connect_configuration() :: #{ %% <<"accessLogConfiguration">> => service_connect_access_log_configuration(), %% <<"enabled">> => boolean(), %% <<"logConfiguration">> => log_configuration(), %% <<"namespace">> => string(), %% <<"services">> => list(service_connect_service()) %% } -type service_connect_configuration() :: #{binary() => any()}. %% Example: %% daemon_linux_parameters() :: #{ %% <<"capabilities">> => kernel_capabilities(), %% <<"devices">> => list(device()), %% <<"initProcessEnabled">> => boolean(), %% <<"tmpfs">> => list(tmpfs()) %% } -type daemon_linux_parameters() :: #{binary() => any()}. %% Example: %% client_exception() :: #{ %% <<"message">> => string() %% } -type client_exception() :: #{binary() => any()}. %% Example: %% describe_capacity_providers_request() :: #{ %% <<"capacityProviders">> => list(string()), %% <<"cluster">> => string(), %% <<"include">> => list(list(any())()), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string() %% } -type describe_capacity_providers_request() :: #{binary() => any()}. %% Example: %% conflict_exception() :: #{ %% <<"message">> => string(), %% <<"resourceIds">> => list(string()) %% } -type conflict_exception() :: #{binary() => any()}. %% Example: %% resource_not_found_exception() :: #{ %% <<"message">> => string() %% } -type resource_not_found_exception() :: #{binary() => any()}. %% Example: %% update_daemon_request() :: #{ %% <<"capacityProviderArns">> := list(string()), %% <<"daemonArn">> := string(), %% <<"daemonTaskDefinitionArn">> := string(), %% <<"deploymentConfiguration">> => daemon_deployment_configuration(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"propagateTags">> => list(any()) %% } -type update_daemon_request() :: #{binary() => any()}. %% Example: %% container_definition() :: #{ %% <<"pseudoTerminal">> => boolean(), %% <<"essential">> => boolean(), %% <<"hostname">> => string(), %% <<"links">> => list(string()), %% <<"secrets">> => list(secret()), %% <<"portMappings">> => list(port_mapping()), %% <<"entryPoint">> => list(string()), %% <<"environment">> => list(key_value_pair()), %% <<"environmentFiles">> => list(environment_file()), %% <<"readonlyRootFilesystem">> => boolean(), %% <<"resourceRequirements">> => list(resource_requirement()), %% <<"dockerSecurityOptions">> => list(string()), %% <<"dnsSearchDomains">> => list(string()), %% <<"volumesFrom">> => list(volume_from()), %% <<"interactive">> => boolean(), %% <<"privileged">> => boolean(), %% <<"stopTimeout">> => integer(), %% <<"logConfiguration">> => log_configuration(), %% <<"dependsOn">> => list(container_dependency()), %% <<"ulimits">> => list(ulimit()), %% <<"cpu">> => integer(), %% <<"mountPoints">> => list(mount_point()), %% <<"memoryReservation">> => integer(), %% <<"dnsServers">> => list(string()), %% <<"extraHosts">> => list(host_entry()), %% <<"memory">> => integer(), %% <<"command">> => list(string()), %% <<"linuxParameters">> => linux_parameters(), %% <<"firelensConfiguration">> => firelens_configuration(), %% <<"healthCheck">> => health_check(), %% <<"restartPolicy">> => container_restart_policy(), %% <<"systemControls">> => list(system_control()), %% <<"workingDirectory">> => string(), %% <<"versionConsistency">> => list(any()), %% <<"startTimeout">> => integer(), %% <<"credentialSpecs">> => list(string()), %% <<"repositoryCredentials">> => repository_credentials(), %% <<"dockerLabels">> => map(), %% <<"image">> => string(), %% <<"user">> => string(), %% <<"disableNetworking">> => boolean(), %% <<"name">> => string() %% } -type container_definition() :: #{binary() => any()}. %% Example: %% managed_storage_configuration() :: #{ %% <<"fargateEphemeralStorageKmsKeyId">> => string(), %% <<"kmsKeyId">> => string() %% } -type managed_storage_configuration() :: #{binary() => any()}. %% Example: %% vpc_lattice_configuration() :: #{ %% <<"portName">> => string(), %% <<"roleArn">> => string(), %% <<"targetGroupArn">> => string() %% } -type vpc_lattice_configuration() :: #{binary() => any()}. %% Example: %% get_task_protection_request() :: #{ %% <<"cluster">> := string(), %% <<"tasks">> => list(string()) %% } -type get_task_protection_request() :: #{binary() => any()}. %% Example: %% cluster_contains_tasks_exception() :: #{ %% <<"message">> => string() %% } -type cluster_contains_tasks_exception() :: #{binary() => any()}. %% Example: %% tag() :: #{ %% <<"key">> => string(), %% <<"value">> => string() %% } -type tag() :: #{binary() => any()}. %% Example: %% create_daemon_response() :: #{ %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"deploymentArn">> => string(), %% <<"status">> => list(any()) %% } -type create_daemon_response() :: #{binary() => any()}. %% Example: %% list_task_definitions_response() :: #{ %% <<"nextToken">> => string(), %% <<"taskDefinitionArns">> => list(string()) %% } -type list_task_definitions_response() :: #{binary() => any()}. %% Example: %% container_override() :: #{ %% <<"command">> => list(string()), %% <<"cpu">> => integer(), %% <<"environment">> => list(key_value_pair()), %% <<"environmentFiles">> => list(environment_file()), %% <<"memory">> => integer(), %% <<"memoryReservation">> => integer(), %% <<"name">> => string(), %% <<"resourceRequirements">> => list(resource_requirement()) %% } -type container_override() :: #{binary() => any()}. %% Example: %% ulimit() :: #{ %% <<"hardLimit">> => integer(), %% <<"name">> => list(any()), %% <<"softLimit">> => integer() %% } -type ulimit() :: #{binary() => any()}. %% Example: %% execute_command_log_configuration() :: #{ %% <<"cloudWatchEncryptionEnabled">> => boolean(), %% <<"cloudWatchLogGroupName">> => string(), %% <<"s3BucketName">> => string(), %% <<"s3EncryptionEnabled">> => boolean(), %% <<"s3KeyPrefix">> => string() %% } -type execute_command_log_configuration() :: #{binary() => any()}. %% Example: %% cluster() :: #{ %% <<"activeServicesCount">> => integer(), %% <<"attachments">> => list(attachment()), %% <<"attachmentsStatus">> => string(), %% <<"capacityProviders">> => list(string()), %% <<"clusterArn">> => string(), %% <<"clusterName">> => string(), %% <<"configuration">> => cluster_configuration(), %% <<"defaultCapacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"pendingTasksCount">> => integer(), %% <<"registeredContainerInstancesCount">> => integer(), %% <<"runningTasksCount">> => integer(), %% <<"serviceConnectDefaults">> => cluster_service_connect_defaults(), %% <<"settings">> => list(cluster_setting()), %% <<"statistics">> => list(key_value_pair()), %% <<"status">> => string(), %% <<"tags">> => list(tag()) %% } -type cluster() :: #{binary() => any()}. %% Example: %% deployment_lifecycle_hook() :: #{ %% <<"hookDetails">> => any(), %% <<"hookTargetArn">> => string(), %% <<"lifecycleStages">> => list(list(any())()), %% <<"roleArn">> => string() %% } -type deployment_lifecycle_hook() :: #{binary() => any()}. %% Example: %% managed_load_balancer() :: #{ %% <<"arn">> => string(), %% <<"scheme">> => string(), %% <<"securityGroupIds">> => list(string()), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"subnetIds">> => list(string()), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_load_balancer() :: #{binary() => any()}. %% Example: %% attachment_state_change() :: #{ %% <<"attachmentArn">> => string(), %% <<"status">> => string() %% } -type attachment_state_change() :: #{binary() => any()}. %% Example: %% daemon_deployment_summary() :: #{ %% <<"clusterArn">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"daemonDeploymentArn">> => string(), %% <<"finishedAt">> => non_neg_integer(), %% <<"startedAt">> => non_neg_integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"stoppedAt">> => non_neg_integer(), %% <<"targetDaemonRevisionArn">> => string() %% } -type daemon_deployment_summary() :: #{binary() => any()}. %% Example: %% list_services_response() :: #{ %% <<"nextToken">> => string(), %% <<"serviceArns">> => list(string()) %% } -type list_services_response() :: #{binary() => any()}. %% Example: %% describe_service_revisions_response() :: #{ %% <<"failures">> => list(failure()), %% <<"serviceRevisions">> => list(service_revision()) %% } -type describe_service_revisions_response() :: #{binary() => any()}. %% Example: %% service_deployment_alarms() :: #{ %% <<"alarmNames">> => list(string()), %% <<"status">> => list(any()), %% <<"triggeredAlarmNames">> => list(string()) %% } -type service_deployment_alarms() :: #{binary() => any()}. %% Example: %% service_not_active_exception() :: #{ %% <<"message">> => string() %% } -type service_not_active_exception() :: #{binary() => any()}. %% Example: %% cluster_setting() :: #{ %% <<"name">> => list(any()), %% <<"value">> => string() %% } -type cluster_setting() :: #{binary() => any()}. %% Example: %% managed_certificate() :: #{ %% <<"arn">> => string(), %% <<"domainName">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_certificate() :: #{binary() => any()}. %% Example: %% accelerator_count_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type accelerator_count_request() :: #{binary() => any()}. %% Example: %% delete_task_definitions_request() :: #{ %% <<"taskDefinitions">> := list(string()) %% } -type delete_task_definitions_request() :: #{binary() => any()}. %% Example: %% describe_task_sets_request() :: #{ %% <<"cluster">> := string(), %% <<"include">> => list(list(any())()), %% <<"service">> := string(), %% <<"taskSets">> => list(string()) %% } -type describe_task_sets_request() :: #{binary() => any()}. %% Example: %% update_express_gateway_service_response() :: #{ %% <<"service">> => updated_express_gateway_service() %% } -type update_express_gateway_service_response() :: #{binary() => any()}. %% Example: %% submit_container_state_change_request() :: #{ %% <<"cluster">> => string(), %% <<"containerName">> => string(), %% <<"exitCode">> => integer(), %% <<"networkBindings">> => list(network_binding()), %% <<"reason">> => string(), %% <<"runtimeId">> => string(), %% <<"status">> => string(), %% <<"task">> => string() %% } -type submit_container_state_change_request() :: #{binary() => any()}. %% Example: %% create_service_request() :: #{ %% <<"availabilityZoneRebalancing">> => list(any()), %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"clientToken">> => string(), %% <<"cluster">> => string(), %% <<"deploymentConfiguration">> => deployment_configuration(), %% <<"deploymentController">> => deployment_controller(), %% <<"desiredCount">> => integer(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"healthCheckGracePeriodSeconds">> => integer(), %% <<"launchType">> => list(any()), %% <<"loadBalancers">> => list(load_balancer()), %% <<"networkConfiguration">> => network_configuration(), %% <<"placementConstraints">> => list(placement_constraint()), %% <<"placementStrategy">> => list(placement_strategy()), %% <<"platformVersion">> => string(), %% <<"propagateTags">> => list(any()), %% <<"role">> => string(), %% <<"schedulingStrategy">> => list(any()), %% <<"serviceConnectConfiguration">> => service_connect_configuration(), %% <<"serviceName">> := string(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"tags">> => list(tag()), %% <<"taskDefinition">> => string(), %% <<"volumeConfigurations">> => list(service_volume_configuration()), %% <<"vpcLatticeConfigurations">> => list(vpc_lattice_configuration()) %% } -type create_service_request() :: #{binary() => any()}. %% Example: %% task_definition_placement_constraint() :: #{ %% <<"expression">> => string(), %% <<"type">> => list(any()) %% } -type task_definition_placement_constraint() :: #{binary() => any()}. %% Example: %% list_task_definition_families_response() :: #{ %% <<"families">> => list(string()), %% <<"nextToken">> => string() %% } -type list_task_definition_families_response() :: #{binary() => any()}. %% Example: %% container_image() :: #{ %% <<"containerName">> => string(), %% <<"image">> => string(), %% <<"imageDigest">> => string() %% } -type container_image() :: #{binary() => any()}. %% Example: %% update_task_set_response() :: #{ %% <<"taskSet">> => task_set() %% } -type update_task_set_response() :: #{binary() => any()}. %% Example: %% delete_attributes_response() :: #{ %% <<"attributes">> => list(attribute()) %% } -type delete_attributes_response() :: #{binary() => any()}. %% Example: %% describe_tasks_response() :: #{ %% <<"failures">> => list(failure()), %% <<"tasks">> => list(task()) %% } -type describe_tasks_response() :: #{binary() => any()}. %% Example: %% deployment_circuit_breaker() :: #{ %% <<"enable">> => boolean(), %% <<"rollback">> => boolean() %% } -type deployment_circuit_breaker() :: #{binary() => any()}. %% Example: %% describe_container_instances_response() :: #{ %% <<"containerInstances">> => list(container_instance()), %% <<"failures">> => list(failure()) %% } -type describe_container_instances_response() :: #{binary() => any()}. %% Example: %% container_state_change() :: #{ %% <<"containerName">> => string(), %% <<"exitCode">> => integer(), %% <<"imageDigest">> => string(), %% <<"networkBindings">> => list(network_binding()), %% <<"reason">> => string(), %% <<"runtimeId">> => string(), %% <<"status">> => string() %% } -type container_state_change() :: #{binary() => any()}. %% Example: %% describe_daemon_deployments_response() :: #{ %% <<"daemonDeployments">> => list(daemon_deployment()), %% <<"failures">> => list(failure()) %% } -type describe_daemon_deployments_response() :: #{binary() => any()}. %% Example: %% secret() :: #{ %% <<"name">> => string(), %% <<"valueFrom">> => string() %% } -type secret() :: #{binary() => any()}. %% Example: %% put_cluster_capacity_providers_request() :: #{ %% <<"capacityProviders">> := list(string()), %% <<"cluster">> := string(), %% <<"defaultCapacityProviderStrategy">> := list(capacity_provider_strategy_item()) %% } -type put_cluster_capacity_providers_request() :: #{binary() => any()}. %% Example: %% capacity_reservation_request() :: #{ %% <<"reservationGroupArn">> => string(), %% <<"reservationPreference">> => list(any()) %% } -type capacity_reservation_request() :: #{binary() => any()}. %% Example: %% list_tags_for_resource_response() :: #{ %% <<"tags">> => list(tag()) %% } -type list_tags_for_resource_response() :: #{binary() => any()}. %% Example: %% auto_scaling_group_provider_update() :: #{ %% <<"managedDraining">> => list(any()), %% <<"managedScaling">> => managed_scaling(), %% <<"managedTerminationProtection">> => list(any()) %% } -type auto_scaling_group_provider_update() :: #{binary() => any()}. %% Example: %% instance_health_check_result() :: #{ %% <<"lastStatusChange">> => non_neg_integer(), %% <<"lastUpdated">> => non_neg_integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"type">> => list(any()) %% } -type instance_health_check_result() :: #{binary() => any()}. %% Example: %% network_binding() :: #{ %% <<"bindIP">> => string(), %% <<"containerPort">> => integer(), %% <<"containerPortRange">> => string(), %% <<"hostPort">> => integer(), %% <<"hostPortRange">> => string(), %% <<"protocol">> => list(any()) %% } -type network_binding() :: #{binary() => any()}. %% Example: %% service_deployment() :: #{ %% <<"alarms">> => service_deployment_alarms(), %% <<"clusterArn">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"deploymentCircuitBreaker">> => service_deployment_circuit_breaker(), %% <<"deploymentConfiguration">> => deployment_configuration(), %% <<"finishedAt">> => non_neg_integer(), %% <<"lifecycleStage">> => list(any()), %% <<"rollback">> => rollback(), %% <<"serviceArn">> => string(), %% <<"serviceDeploymentArn">> => string(), %% <<"sourceServiceRevisions">> => list(service_revision_summary()), %% <<"startedAt">> => non_neg_integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"stoppedAt">> => non_neg_integer(), %% <<"targetServiceRevision">> => service_revision_summary(), %% <<"updatedAt">> => non_neg_integer() %% } -type service_deployment() :: #{binary() => any()}. %% Example: %% describe_task_sets_response() :: #{ %% <<"failures">> => list(failure()), %% <<"taskSets">> => list(task_set()) %% } -type describe_task_sets_response() :: #{binary() => any()}. %% Example: %% deregister_container_instance_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstance">> := string(), %% <<"force">> => boolean() %% } -type deregister_container_instance_request() :: #{binary() => any()}. %% Example: %% list_container_instances_request() :: #{ %% <<"cluster">> => string(), %% <<"filter">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"status">> => list(any()) %% } -type list_container_instances_request() :: #{binary() => any()}. %% Example: %% submit_task_state_change_request() :: #{ %% <<"attachments">> => list(attachment_state_change()), %% <<"cluster">> => string(), %% <<"containers">> => list(container_state_change()), %% <<"executionStoppedAt">> => non_neg_integer(), %% <<"managedAgents">> => list(managed_agent_state_change()), %% <<"pullStartedAt">> => non_neg_integer(), %% <<"pullStoppedAt">> => non_neg_integer(), %% <<"reason">> => string(), %% <<"status">> => string(), %% <<"task">> => string() %% } -type submit_task_state_change_request() :: #{binary() => any()}. %% Example: %% managed_log_group() :: #{ %% <<"arn">> => string(), %% <<"logGroupName">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_log_group() :: #{binary() => any()}. %% Example: %% daemon_volume() :: #{ %% <<"host">> => host_volume_properties(), %% <<"name">> => string() %% } -type daemon_volume() :: #{binary() => any()}. %% Example: %% update_managed_instances_provider_configuration() :: #{ %% <<"autoRepairConfiguration">> => auto_repair_configuration(), %% <<"infrastructureOptimization">> => infrastructure_optimization(), %% <<"infrastructureRoleArn">> => string(), %% <<"instanceLaunchTemplate">> => instance_launch_template_update(), %% <<"propagateTags">> => list(any()) %% } -type update_managed_instances_provider_configuration() :: #{binary() => any()}. %% Example: %% e_c_s_managed_resources() :: #{ %% <<"autoScaling">> => managed_auto_scaling(), %% <<"ingressPaths">> => list(managed_ingress_path()), %% <<"logGroups">> => list(managed_log_group()), %% <<"metricAlarms">> => list(managed_metric_alarm()), %% <<"serviceSecurityGroups">> => list(managed_security_group()) %% } -type e_c_s_managed_resources() :: #{binary() => any()}. %% Example: %% health_check() :: #{ %% <<"command">> => list(string()), %% <<"interval">> => integer(), %% <<"retries">> => integer(), %% <<"startPeriod">> => integer(), %% <<"timeout">> => integer() %% } -type health_check() :: #{binary() => any()}. %% Example: %% update_container_agent_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstance">> := string() %% } -type update_container_agent_request() :: #{binary() => any()}. %% Example: %% ephemeral_storage() :: #{ %% <<"sizeInGiB">> => integer() %% } -type ephemeral_storage() :: #{binary() => any()}. %% Example: %% submit_attachment_state_changes_response() :: #{ %% <<"acknowledgment">> => string() %% } -type submit_attachment_state_changes_response() :: #{binary() => any()}. %% Example: %% list_clusters_response() :: #{ %% <<"clusterArns">> => list(string()), %% <<"nextToken">> => string() %% } -type list_clusters_response() :: #{binary() => any()}. %% Example: %% task_set_not_found_exception() :: #{ %% <<"message">> => string() %% } -type task_set_not_found_exception() :: #{binary() => any()}. %% Example: %% update_express_gateway_service_request() :: #{ %% <<"cpu">> => string(), %% <<"executionRoleArn">> => string(), %% <<"healthCheckPath">> => string(), %% <<"memory">> => string(), %% <<"networkConfiguration">> => express_gateway_service_network_configuration(), %% <<"primaryContainer">> => express_gateway_container(), %% <<"scalingTarget">> => express_gateway_scaling_target(), %% <<"serviceArn">> := string(), %% <<"taskRoleArn">> => string() %% } -type update_express_gateway_service_request() :: #{binary() => any()}. %% Example: %% session() :: #{ %% <<"sessionId">> => string(), %% <<"streamUrl">> => string(), %% <<"tokenValue">> => string() %% } -type session() :: #{binary() => any()}. %% Example: %% delete_cluster_response() :: #{ %% <<"cluster">> => cluster() %% } -type delete_cluster_response() :: #{binary() => any()}. %% Example: %% create_express_gateway_service_request() :: #{ %% <<"cluster">> => string(), %% <<"cpu">> => string(), %% <<"executionRoleArn">> := string(), %% <<"healthCheckPath">> => string(), %% <<"infrastructureRoleArn">> := string(), %% <<"memory">> => string(), %% <<"networkConfiguration">> => express_gateway_service_network_configuration(), %% <<"primaryContainer">> := express_gateway_container(), %% <<"scalingTarget">> => express_gateway_scaling_target(), %% <<"serviceName">> => string(), %% <<"tags">> => list(tag()), %% <<"taskRoleArn">> => string() %% } -type create_express_gateway_service_request() :: #{binary() => any()}. %% Example: %% create_capacity_provider_response() :: #{ %% <<"capacityProvider">> => capacity_provider() %% } -type create_capacity_provider_response() :: #{binary() => any()}. %% Example: %% update_container_agent_response() :: #{ %% <<"containerInstance">> => container_instance() %% } -type update_container_agent_response() :: #{binary() => any()}. %% Example: %% express_gateway_repository_credentials() :: #{ %% <<"credentialsParameter">> => string() %% } -type express_gateway_repository_credentials() :: #{binary() => any()}. %% Example: %% put_attributes_response() :: #{ %% <<"attributes">> => list(attribute()) %% } -type put_attributes_response() :: #{binary() => any()}. %% Example: %% task_definition() :: #{ %% <<"compatibilities">> => list(list(any())()), %% <<"containerDefinitions">> => list(container_definition()), %% <<"cpu">> => string(), %% <<"deleteRequestedAt">> => non_neg_integer(), %% <<"deregisteredAt">> => non_neg_integer(), %% <<"enableFaultInjection">> => boolean(), %% <<"ephemeralStorage">> => ephemeral_storage(), %% <<"executionRoleArn">> => string(), %% <<"family">> => string(), %% <<"inferenceAccelerators">> => list(inference_accelerator()), %% <<"ipcMode">> => list(any()), %% <<"memory">> => string(), %% <<"networkMode">> => list(any()), %% <<"pidMode">> => list(any()), %% <<"placementConstraints">> => list(task_definition_placement_constraint()), %% <<"proxyConfiguration">> => proxy_configuration(), %% <<"registeredAt">> => non_neg_integer(), %% <<"registeredBy">> => string(), %% <<"requiresAttributes">> => list(attribute()), %% <<"requiresCompatibilities">> => list(list(any())()), %% <<"revision">> => integer(), %% <<"runtimePlatform">> => runtime_platform(), %% <<"status">> => list(any()), %% <<"taskDefinitionArn">> => string(), %% <<"taskRoleArn">> => string(), %% <<"volumes">> => list(volume()) %% } -type task_definition() :: #{binary() => any()}. %% Example: %% list_container_instances_response() :: #{ %% <<"containerInstanceArns">> => list(string()), %% <<"nextToken">> => string() %% } -type list_container_instances_response() :: #{binary() => any()}. %% Example: %% delete_daemon_request() :: #{ %% <<"daemonArn">> := string() %% } -type delete_daemon_request() :: #{binary() => any()}. %% Example: %% network_bandwidth_gbps_request() :: #{ %% <<"max">> => float(), %% <<"min">> => float() %% } -type network_bandwidth_gbps_request() :: #{binary() => any()}. %% Example: %% update_cluster_settings_request() :: #{ %% <<"cluster">> := string(), %% <<"settings">> := list(cluster_setting()) %% } -type update_cluster_settings_request() :: #{binary() => any()}. %% Example: %% update_service_request() :: #{ %% <<"availabilityZoneRebalancing">> => list(any()), %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"cluster">> => string(), %% <<"deploymentConfiguration">> => deployment_configuration(), %% <<"deploymentController">> => deployment_controller(), %% <<"desiredCount">> => integer(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"forceNewDeployment">> => boolean(), %% <<"healthCheckGracePeriodSeconds">> => integer(), %% <<"loadBalancers">> => list(load_balancer()), %% <<"networkConfiguration">> => network_configuration(), %% <<"placementConstraints">> => list(placement_constraint()), %% <<"placementStrategy">> => list(placement_strategy()), %% <<"platformVersion">> => string(), %% <<"propagateTags">> => list(any()), %% <<"service">> := string(), %% <<"serviceConnectConfiguration">> => service_connect_configuration(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"taskDefinition">> => string(), %% <<"volumeConfigurations">> => list(service_volume_configuration()), %% <<"vpcLatticeConfigurations">> => list(vpc_lattice_configuration()) %% } -type update_service_request() :: #{binary() => any()}. %% Example: %% register_daemon_task_definition_request() :: #{ %% <<"containerDefinitions">> := list(daemon_container_definition()), %% <<"cpu">> => string(), %% <<"executionRoleArn">> => string(), %% <<"family">> := string(), %% <<"memory">> => string(), %% <<"tags">> => list(tag()), %% <<"taskRoleArn">> => string(), %% <<"volumes">> => list(daemon_volume()) %% } -type register_daemon_task_definition_request() :: #{binary() => any()}. %% Example: %% ebs_tag_specification() :: #{ %% <<"propagateTags">> => list(any()), %% <<"resourceType">> => list(any()), %% <<"tags">> => list(tag()) %% } -type ebs_tag_specification() :: #{binary() => any()}. %% Example: %% deployment_controller() :: #{ %% <<"type">> => list(any()) %% } -type deployment_controller() :: #{binary() => any()}. %% Example: %% put_account_setting_default_response() :: #{ %% <<"setting">> => setting() %% } -type put_account_setting_default_response() :: #{binary() => any()}. %% Example: %% discover_poll_endpoint_response() :: #{ %% <<"endpoint">> => string(), %% <<"serviceConnectEndpoint">> => string(), %% <<"telemetryEndpoint">> => string() %% } -type discover_poll_endpoint_response() :: #{binary() => any()}. %% Example: %% daemon_task_definition_summary() :: #{ %% <<"arn">> => string(), %% <<"deleteRequestedAt">> => non_neg_integer(), %% <<"registeredAt">> => non_neg_integer(), %% <<"registeredBy">> => string(), %% <<"status">> => list(any()) %% } -type daemon_task_definition_summary() :: #{binary() => any()}. %% Example: %% instance_launch_template_update() :: #{ %% <<"capacityReservations">> => capacity_reservation_request(), %% <<"ec2InstanceProfileArn">> => string(), %% <<"instanceMetadataTagsPropagation">> => boolean(), %% <<"instanceRequirements">> => instance_requirements_request(), %% <<"localStorageConfiguration">> => managed_instances_local_storage_configuration(), %% <<"monitoring">> => list(any()), %% <<"networkConfiguration">> => managed_instances_network_configuration(), %% <<"storageConfiguration">> => managed_instances_storage_configuration() %% } -type instance_launch_template_update() :: #{binary() => any()}. %% Example: %% list_clusters_request() :: #{ %% <<"maxResults">> => integer(), %% <<"nextToken">> => string() %% } -type list_clusters_request() :: #{binary() => any()}. %% Example: %% describe_express_gateway_service_response() :: #{ %% <<"service">> => e_c_s_express_gateway_service() %% } -type describe_express_gateway_service_response() :: #{binary() => any()}. %% Example: %% describe_task_definition_request() :: #{ %% <<"include">> => list(list(any())()), %% <<"taskDefinition">> := string() %% } -type describe_task_definition_request() :: #{binary() => any()}. %% Example: %% f_sx_windows_file_server_authorization_config() :: #{ %% <<"credentialsParameter">> => string(), %% <<"domain">> => string() %% } -type f_sx_windows_file_server_authorization_config() :: #{binary() => any()}. %% Example: %% update_capacity_provider_response() :: #{ %% <<"capacityProvider">> => capacity_provider() %% } -type update_capacity_provider_response() :: #{binary() => any()}. %% Example: %% list_daemon_deployments_request() :: #{ %% <<"createdAt">> => created_at(), %% <<"daemonArn">> := string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"status">> => list(list(any())()) %% } -type list_daemon_deployments_request() :: #{binary() => any()}. %% Example: %% platform_unknown_exception() :: #{ %% <<"message">> => string() %% } -type platform_unknown_exception() :: #{binary() => any()}. %% Example: %% managed_auto_scaling() :: #{ %% <<"applicationAutoScalingPolicies">> => list(managed_application_auto_scaling_policy()), %% <<"scalableTarget">> => managed_scalable_target() %% } -type managed_auto_scaling() :: #{binary() => any()}. %% Example: %% delete_attributes_request() :: #{ %% <<"attributes">> := list(attribute()), %% <<"cluster">> => string() %% } -type delete_attributes_request() :: #{binary() => any()}. %% Example: %% express_gateway_scaling_target() :: #{ %% <<"autoScalingMetric">> => list(any()), %% <<"autoScalingTargetValue">> => integer(), %% <<"maxTaskCount">> => integer(), %% <<"minTaskCount">> => integer() %% } -type express_gateway_scaling_target() :: #{binary() => any()}. %% Example: %% e_f_s_authorization_config() :: #{ %% <<"accessPointId">> => string(), %% <<"iam">> => list(any()) %% } -type e_f_s_authorization_config() :: #{binary() => any()}. %% Example: %% update_task_protection_response() :: #{ %% <<"failures">> => list(failure()), %% <<"protectedTasks">> => list(protected_task()) %% } -type update_task_protection_response() :: #{binary() => any()}. %% Example: %% delete_task_set_request() :: #{ %% <<"cluster">> := string(), %% <<"force">> => boolean(), %% <<"service">> := string(), %% <<"taskSet">> := string() %% } -type delete_task_set_request() :: #{binary() => any()}. %% Example: %% accelerator_total_memory_mi_b_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type accelerator_total_memory_mi_b_request() :: #{binary() => any()}. %% Example: %% cluster_contains_container_instances_exception() :: #{ %% <<"message">> => string() %% } -type cluster_contains_container_instances_exception() :: #{binary() => any()}. %% Example: %% canary_configuration() :: #{ %% <<"canaryBakeTimeInMinutes">> => integer(), %% <<"canaryPercent">> => float() %% } -type canary_configuration() :: #{binary() => any()}. %% Example: %% submit_container_state_change_response() :: #{ %% <<"acknowledgment">> => string() %% } -type submit_container_state_change_response() :: #{binary() => any()}. %% Example: %% list_task_definition_families_request() :: #{ %% <<"familyPrefix">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"status">> => list(any()) %% } -type list_task_definition_families_request() :: #{binary() => any()}. %% Example: %% list_daemons_request() :: #{ %% <<"capacityProviderArns">> => list(string()), %% <<"clusterArn">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string() %% } -type list_daemons_request() :: #{binary() => any()}. %% Example: %% delete_cluster_request() :: #{ %% <<"cluster">> := string() %% } -type delete_cluster_request() :: #{binary() => any()}. %% Example: %% e_f_s_volume_configuration() :: #{ %% <<"authorizationConfig">> => e_f_s_authorization_config(), %% <<"fileSystemId">> => string(), %% <<"rootDirectory">> => string(), %% <<"transitEncryption">> => list(any()), %% <<"transitEncryptionPort">> => integer() %% } -type e_f_s_volume_configuration() :: #{binary() => any()}. %% Example: %% update_cluster_settings_response() :: #{ %% <<"cluster">> => cluster() %% } -type update_cluster_settings_response() :: #{binary() => any()}. %% Example: %% capacity_provider_strategy_item() :: #{ %% <<"base">> => integer(), %% <<"capacityProvider">> => string(), %% <<"weight">> => integer() %% } -type capacity_provider_strategy_item() :: #{binary() => any()}. %% Example: %% no_update_available_exception() :: #{ %% <<"message">> => string() %% } -type no_update_available_exception() :: #{binary() => any()}. %% Example: %% service_revision_load_balancer() :: #{ %% <<"productionListenerRule">> => string(), %% <<"targetGroupArn">> => string() %% } -type service_revision_load_balancer() :: #{binary() => any()}. %% Example: %% delete_task_definitions_response() :: #{ %% <<"failures">> => list(failure()), %% <<"taskDefinitions">> => list(task_definition()) %% } -type delete_task_definitions_response() :: #{binary() => any()}. %% Example: %% placement_constraint() :: #{ %% <<"expression">> => string(), %% <<"type">> => list(any()) %% } -type placement_constraint() :: #{binary() => any()}. %% Example: %% network_configuration() :: #{ %% <<"awsvpcConfiguration">> => aws_vpc_configuration() %% } -type network_configuration() :: #{binary() => any()}. %% Example: %% managed_scaling() :: #{ %% <<"instanceWarmupPeriod">> => integer(), %% <<"maximumScalingStepSize">> => integer(), %% <<"minimumScalingStepSize">> => integer(), %% <<"status">> => list(any()), %% <<"targetCapacity">> => integer() %% } -type managed_scaling() :: #{binary() => any()}. %% Example: %% delete_express_gateway_service_response() :: #{ %% <<"service">> => e_c_s_express_gateway_service() %% } -type delete_express_gateway_service_response() :: #{binary() => any()}. %% Example: %% created_at() :: #{ %% <<"after">> => non_neg_integer(), %% <<"before">> => non_neg_integer() %% } -type created_at() :: #{binary() => any()}. %% Example: %% volume() :: #{ %% <<"configuredAtLaunch">> => boolean(), %% <<"dockerVolumeConfiguration">> => docker_volume_configuration(), %% <<"efsVolumeConfiguration">> => e_f_s_volume_configuration(), %% <<"fsxWindowsFileServerVolumeConfiguration">> => f_sx_windows_file_server_volume_configuration(), %% <<"host">> => host_volume_properties(), %% <<"name">> => string(), %% <<"s3filesVolumeConfiguration">> => s3_files_volume_configuration() %% } -type volume() :: #{binary() => any()}. %% Example: %% access_denied_exception() :: #{ %% <<"message">> => string() %% } -type access_denied_exception() :: #{binary() => any()}. %% Example: %% invalid_parameter_exception() :: #{ %% <<"message">> => string() %% } -type invalid_parameter_exception() :: #{binary() => any()}. %% Example: %% auto_repair_configuration() :: #{ %% <<"actionsStatus">> => list(any()) %% } -type auto_repair_configuration() :: #{binary() => any()}. %% Example: %% managed_instances_local_storage_configuration() :: #{ %% <<"useLocalStorage">> => boolean() %% } -type managed_instances_local_storage_configuration() :: #{binary() => any()}. %% Example: %% register_daemon_task_definition_response() :: #{ %% <<"daemonTaskDefinitionArn">> => string() %% } -type register_daemon_task_definition_response() :: #{binary() => any()}. %% Example: %% missing_version_exception() :: #{ %% <<"message">> => string() %% } -type missing_version_exception() :: #{binary() => any()}. %% Example: %% managed_instances_storage_configuration() :: #{ %% <<"storageSizeGiB">> => integer() %% } -type managed_instances_storage_configuration() :: #{binary() => any()}. %% Example: %% tag_resource_response() :: #{ %% } -type tag_resource_response() :: #{binary() => any()}. %% Example: %% update_daemon_response() :: #{ %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"deploymentArn">> => string(), %% <<"status">> => list(any()), %% <<"updatedAt">> => non_neg_integer() %% } -type update_daemon_response() :: #{binary() => any()}. %% Example: %% register_task_definition_request() :: #{ %% <<"containerDefinitions">> := list(container_definition()), %% <<"cpu">> => string(), %% <<"enableFaultInjection">> => boolean(), %% <<"ephemeralStorage">> => ephemeral_storage(), %% <<"executionRoleArn">> => string(), %% <<"family">> := string(), %% <<"inferenceAccelerators">> => list(inference_accelerator()), %% <<"ipcMode">> => list(any()), %% <<"memory">> => string(), %% <<"networkMode">> => list(any()), %% <<"pidMode">> => list(any()), %% <<"placementConstraints">> => list(task_definition_placement_constraint()), %% <<"proxyConfiguration">> => proxy_configuration(), %% <<"requiresCompatibilities">> => list(list(any())()), %% <<"runtimePlatform">> => runtime_platform(), %% <<"tags">> => list(tag()), %% <<"taskRoleArn">> => string(), %% <<"volumes">> => list(volume()) %% } -type register_task_definition_request() :: #{binary() => any()}. %% Example: %% describe_tasks_request() :: #{ %% <<"cluster">> => string(), %% <<"include">> => list(list(any())()), %% <<"tasks">> := list(string()) %% } -type describe_tasks_request() :: #{binary() => any()}. %% Example: %% inference_accelerator_override() :: #{ %% <<"deviceName">> => string(), %% <<"deviceType">> => string() %% } -type inference_accelerator_override() :: #{binary() => any()}. %% Example: %% auto_scaling_group_provider() :: #{ %% <<"autoScalingGroupArn">> => string(), %% <<"managedDraining">> => list(any()), %% <<"managedScaling">> => managed_scaling(), %% <<"managedTerminationProtection">> => list(any()) %% } -type auto_scaling_group_provider() :: #{binary() => any()}. %% Example: %% daemon_deployment_capacity_provider() :: #{ %% <<"arn">> => string(), %% <<"drainingInstanceCount">> => integer(), %% <<"runningInstanceCount">> => integer() %% } -type daemon_deployment_capacity_provider() :: #{binary() => any()}. %% Example: %% e_c_s_express_gateway_service() :: #{ %% <<"activeConfigurations">> => list(express_gateway_service_configuration()), %% <<"cluster">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"currentDeployment">> => string(), %% <<"infrastructureRoleArn">> => string(), %% <<"serviceArn">> => string(), %% <<"serviceName">> => string(), %% <<"status">> => express_gateway_service_status(), %% <<"tags">> => list(tag()), %% <<"updatedAt">> => non_neg_integer() %% } -type e_c_s_express_gateway_service() :: #{binary() => any()}. %% Example: %% platform_task_definition_incompatibility_exception() :: #{ %% <<"message">> => string() %% } -type platform_task_definition_incompatibility_exception() :: #{binary() => any()}. %% Example: %% port_mapping() :: #{ %% <<"appProtocol">> => list(any()), %% <<"containerPort">> => integer(), %% <<"containerPortRange">> => string(), %% <<"hostPort">> => integer(), %% <<"name">> => string(), %% <<"protocol">> => list(any()) %% } -type port_mapping() :: #{binary() => any()}. %% Example: %% create_daemon_request() :: #{ %% <<"capacityProviderArns">> := list(string()), %% <<"clientToken">> => string(), %% <<"clusterArn">> => string(), %% <<"daemonName">> := string(), %% <<"daemonTaskDefinitionArn">> := string(), %% <<"deploymentConfiguration">> => daemon_deployment_configuration(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"propagateTags">> => list(any()), %% <<"tags">> => list(tag()) %% } -type create_daemon_request() :: #{binary() => any()}. %% Example: %% describe_clusters_response() :: #{ %% <<"clusters">> => list(cluster()), %% <<"failures">> => list(failure()) %% } -type describe_clusters_response() :: #{binary() => any()}. %% Example: %% describe_daemon_request() :: #{ %% <<"daemonArn">> := string() %% } -type describe_daemon_request() :: #{binary() => any()}. %% Example: %% advanced_configuration() :: #{ %% <<"alternateTargetGroupArn">> => string(), %% <<"productionListenerRule">> => string(), %% <<"roleArn">> => string(), %% <<"testListenerRule">> => string() %% } -type advanced_configuration() :: #{binary() => any()}. %% Example: %% start_task_response() :: #{ %% <<"failures">> => list(failure()), %% <<"tasks">> => list(task()) %% } -type start_task_response() :: #{binary() => any()}. %% Example: %% load_balancer() :: #{ %% <<"advancedConfiguration">> => advanced_configuration(), %% <<"containerName">> => string(), %% <<"containerPort">> => integer(), %% <<"loadBalancerName">> => string(), %% <<"targetGroupArn">> => string() %% } -type load_balancer() :: #{binary() => any()}. %% Example: %% key_value_pair() :: #{ %% <<"name">> => string(), %% <<"value">> => string() %% } -type key_value_pair() :: #{binary() => any()}. %% Example: %% cluster_service_connect_defaults() :: #{ %% <<"namespace">> => string() %% } -type cluster_service_connect_defaults() :: #{binary() => any()}. %% Example: %% list_tags_for_resource_request() :: #{ %% <<"resourceArn">> := string() %% } -type list_tags_for_resource_request() :: #{binary() => any()}. %% Example: %% kernel_capabilities() :: #{ %% <<"add">> => list(string()), %% <<"drop">> => list(string()) %% } -type kernel_capabilities() :: #{binary() => any()}. %% Example: %% execute_command_request() :: #{ %% <<"cluster">> => string(), %% <<"command">> := string(), %% <<"container">> => string(), %% <<"interactive">> := boolean(), %% <<"task">> := string() %% } -type execute_command_request() :: #{binary() => any()}. %% Example: %% update_service_primary_task_set_request() :: #{ %% <<"cluster">> := string(), %% <<"primaryTaskSet">> := string(), %% <<"service">> := string() %% } -type update_service_primary_task_set_request() :: #{binary() => any()}. %% Example: %% runtime_platform() :: #{ %% <<"cpuArchitecture">> => list(any()), %% <<"operatingSystemFamily">> => list(any()) %% } -type runtime_platform() :: #{binary() => any()}. %% Example: %% target_not_found_exception() :: #{ %% <<"message">> => string() %% } -type target_not_found_exception() :: #{binary() => any()}. %% Example: %% delete_service_request() :: #{ %% <<"cluster">> => string(), %% <<"force">> => boolean(), %% <<"service">> := string() %% } -type delete_service_request() :: #{binary() => any()}. %% Example: %% daemon_task_definition() :: #{ %% <<"containerDefinitions">> => list(daemon_container_definition()), %% <<"cpu">> => string(), %% <<"daemonTaskDefinitionArn">> => string(), %% <<"deleteRequestedAt">> => non_neg_integer(), %% <<"executionRoleArn">> => string(), %% <<"family">> => string(), %% <<"memory">> => string(), %% <<"registeredAt">> => non_neg_integer(), %% <<"registeredBy">> => string(), %% <<"revision">> => integer(), %% <<"status">> => list(any()), %% <<"taskRoleArn">> => string(), %% <<"volumes">> => list(daemon_volume()) %% } -type daemon_task_definition() :: #{binary() => any()}. %% Example: %% linux_parameters() :: #{ %% <<"capabilities">> => kernel_capabilities(), %% <<"devices">> => list(device()), %% <<"initProcessEnabled">> => boolean(), %% <<"maxSwap">> => integer(), %% <<"sharedMemorySize">> => integer(), %% <<"swappiness">> => integer(), %% <<"tmpfs">> => list(tmpfs()) %% } -type linux_parameters() :: #{binary() => any()}. %% Example: %% submit_task_state_change_response() :: #{ %% <<"acknowledgment">> => string() %% } -type submit_task_state_change_response() :: #{binary() => any()}. %% Example: %% resolved_configuration() :: #{ %% <<"loadBalancers">> => list(service_revision_load_balancer()) %% } -type resolved_configuration() :: #{binary() => any()}. %% Example: %% managed_scalable_target() :: #{ %% <<"arn">> => string(), %% <<"maxCapacity">> => integer(), %% <<"minCapacity">> => integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_scalable_target() :: #{binary() => any()}. %% Example: %% managed_target_group() :: #{ %% <<"arn">> => string(), %% <<"healthCheckPath">> => string(), %% <<"healthCheckPort">> => integer(), %% <<"port">> => integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_target_group() :: #{binary() => any()}. %% Example: %% service_connect_service() :: #{ %% <<"clientAliases">> => list(service_connect_client_alias()), %% <<"discoveryName">> => string(), %% <<"ingressPortOverride">> => integer(), %% <<"portName">> => string(), %% <<"timeout">> => timeout_configuration(), %% <<"tls">> => service_connect_tls_configuration() %% } -type service_connect_service() :: #{binary() => any()}. %% Example: %% scale() :: #{ %% <<"unit">> => list(any()), %% <<"value">> => float() %% } -type scale() :: #{binary() => any()}. %% Example: %% service_connect_test_traffic_header_rules() :: #{ %% <<"name">> => string(), %% <<"value">> => service_connect_test_traffic_header_match_rules() %% } -type service_connect_test_traffic_header_rules() :: #{binary() => any()}. %% Example: %% server_exception() :: #{ %% <<"message">> => string() %% } -type server_exception() :: #{binary() => any()}. %% Example: %% platform_device() :: #{ %% <<"id">> => string(), %% <<"type">> => list(any()) %% } -type platform_device() :: #{binary() => any()}. %% Example: %% discover_poll_endpoint_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstance">> => string() %% } -type discover_poll_endpoint_request() :: #{binary() => any()}. %% Example: %% describe_service_deployments_request() :: #{ %% <<"serviceDeploymentArns">> := list(string()) %% } -type describe_service_deployments_request() :: #{binary() => any()}. %% Example: %% cluster_contains_services_exception() :: #{ %% <<"message">> => string() %% } -type cluster_contains_services_exception() :: #{binary() => any()}. %% Example: %% blocked_exception() :: #{ %% <<"message">> => string() %% } -type blocked_exception() :: #{binary() => any()}. %% Example: %% attribute() :: #{ %% <<"name">> => string(), %% <<"targetId">> => string(), %% <<"targetType">> => list(any()), %% <<"value">> => string() %% } -type attribute() :: #{binary() => any()}. %% Example: %% list_tasks_request() :: #{ %% <<"cluster">> => string(), %% <<"containerInstance">> => string(), %% <<"daemonName">> => string(), %% <<"desiredStatus">> => list(any()), %% <<"family">> => string(), %% <<"launchType">> => list(any()), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"serviceName">> => string(), %% <<"startedBy">> => string() %% } -type list_tasks_request() :: #{binary() => any()}. %% Example: %% task_ephemeral_storage() :: #{ %% <<"kmsKeyId">> => string(), %% <<"sizeInGiB">> => integer() %% } -type task_ephemeral_storage() :: #{binary() => any()}. %% Example: %% describe_capacity_providers_response() :: #{ %% <<"capacityProviders">> => list(capacity_provider()), %% <<"failures">> => list(failure()), %% <<"nextToken">> => string() %% } -type describe_capacity_providers_response() :: #{binary() => any()}. %% Example: %% delete_daemon_task_definition_response() :: #{ %% <<"daemonTaskDefinitionArn">> => string() %% } -type delete_daemon_task_definition_response() :: #{binary() => any()}. %% Example: %% limit_exceeded_exception() :: #{ %% <<"message">> => string() %% } -type limit_exceeded_exception() :: #{binary() => any()}. %% Example: %% failure() :: #{ %% <<"arn">> => string(), %% <<"detail">> => string(), %% <<"reason">> => string() %% } -type failure() :: #{binary() => any()}. %% Example: %% stop_task_response() :: #{ %% <<"task">> => task() %% } -type stop_task_response() :: #{binary() => any()}. %% Example: %% infrastructure_optimization() :: #{ %% <<"scaleInAfter">> => integer() %% } -type infrastructure_optimization() :: #{binary() => any()}. %% Example: %% list_services_by_namespace_response() :: #{ %% <<"nextToken">> => string(), %% <<"serviceArns">> => list(string()) %% } -type list_services_by_namespace_response() :: #{binary() => any()}. %% Example: %% service_connect_client_alias() :: #{ %% <<"dnsName">> => string(), %% <<"port">> => integer(), %% <<"testTrafficRules">> => service_connect_test_traffic_rules() %% } -type service_connect_client_alias() :: #{binary() => any()}. %% Example: %% describe_daemon_task_definition_request() :: #{ %% <<"daemonTaskDefinition">> := string() %% } -type describe_daemon_task_definition_request() :: #{binary() => any()}. %% Example: %% aws_vpc_configuration() :: #{ %% <<"assignPublicIp">> => list(any()), %% <<"securityGroups">> => list(string()), %% <<"subnets">> => list(string()) %% } -type aws_vpc_configuration() :: #{binary() => any()}. %% Example: %% capacity_provider() :: #{ %% <<"autoScalingGroupProvider">> => auto_scaling_group_provider(), %% <<"capacityProviderArn">> => string(), %% <<"cluster">> => string(), %% <<"managedInstancesProvider">> => managed_instances_provider(), %% <<"name">> => string(), %% <<"status">> => list(any()), %% <<"tags">> => list(tag()), %% <<"type">> => list(any()), %% <<"updateStatus">> => list(any()), %% <<"updateStatusReason">> => string() %% } -type capacity_provider() :: #{binary() => any()}. %% Example: %% create_capacity_provider_request() :: #{ %% <<"autoScalingGroupProvider">> => auto_scaling_group_provider(), %% <<"cluster">> => string(), %% <<"managedInstancesProvider">> => create_managed_instances_provider_configuration(), %% <<"name">> := string(), %% <<"tags">> => list(tag()) %% } -type create_capacity_provider_request() :: #{binary() => any()}. %% Example: %% put_attributes_request() :: #{ %% <<"attributes">> := list(attribute()), %% <<"cluster">> => string() %% } -type put_attributes_request() :: #{binary() => any()}. %% Example: %% put_cluster_capacity_providers_response() :: #{ %% <<"cluster">> => cluster() %% } -type put_cluster_capacity_providers_response() :: #{binary() => any()}. %% Example: %% protected_task() :: #{ %% <<"expirationDate">> => non_neg_integer(), %% <<"protectionEnabled">> => boolean(), %% <<"taskArn">> => string() %% } -type protected_task() :: #{binary() => any()}. %% Example: %% express_gateway_service_configuration() :: #{ %% <<"cpu">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"executionRoleArn">> => string(), %% <<"healthCheckPath">> => string(), %% <<"ingressPaths">> => list(ingress_path_summary()), %% <<"memory">> => string(), %% <<"networkConfiguration">> => express_gateway_service_network_configuration(), %% <<"primaryContainer">> => express_gateway_container(), %% <<"scalingTarget">> => express_gateway_scaling_target(), %% <<"serviceRevisionArn">> => string(), %% <<"taskRoleArn">> => string() %% } -type express_gateway_service_configuration() :: #{binary() => any()}. %% Example: %% managed_listener() :: #{ %% <<"arn">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_listener() :: #{binary() => any()}. %% Example: %% service_connect_tls_configuration() :: #{ %% <<"issuerCertificateAuthority">> => service_connect_tls_certificate_authority(), %% <<"kmsKey">> => string(), %% <<"roleArn">> => string() %% } -type service_connect_tls_configuration() :: #{binary() => any()}. %% Example: %% service_revision() :: #{ %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"clusterArn">> => string(), %% <<"containerImages">> => list(container_image()), %% <<"createdAt">> => non_neg_integer(), %% <<"ecsManagedResources">> => e_c_s_managed_resources(), %% <<"fargateEphemeralStorage">> => deployment_ephemeral_storage(), %% <<"guardDutyEnabled">> => boolean(), %% <<"launchType">> => list(any()), %% <<"loadBalancers">> => list(load_balancer()), %% <<"networkConfiguration">> => network_configuration(), %% <<"platformFamily">> => string(), %% <<"platformVersion">> => string(), %% <<"resolvedConfiguration">> => resolved_configuration(), %% <<"serviceArn">> => string(), %% <<"serviceConnectConfiguration">> => service_connect_configuration(), %% <<"serviceRegistries">> => list(service_registry()), %% <<"serviceRevisionArn">> => string(), %% <<"taskDefinition">> => string(), %% <<"volumeConfigurations">> => list(service_volume_configuration()), %% <<"vpcLatticeConfigurations">> => list(vpc_lattice_configuration()) %% } -type service_revision() :: #{binary() => any()}. %% Example: %% managed_application_auto_scaling_policy() :: #{ %% <<"arn">> => string(), %% <<"metric">> => string(), %% <<"policyType">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"targetValue">> => float(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_application_auto_scaling_policy() :: #{binary() => any()}. %% Example: %% memory_mi_b_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type memory_mi_b_request() :: #{binary() => any()}. %% Example: %% network_interface_count_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type network_interface_count_request() :: #{binary() => any()}. %% Example: %% managed_security_group() :: #{ %% <<"arn">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_security_group() :: #{binary() => any()}. %% Example: %% daemon_not_active_exception() :: #{ %% <<"message">> => string() %% } -type daemon_not_active_exception() :: #{binary() => any()}. %% Example: %% list_attributes_request() :: #{ %% <<"attributeName">> => string(), %% <<"attributeValue">> => string(), %% <<"cluster">> => string(), %% <<"maxResults">> => integer(), %% <<"nextToken">> => string(), %% <<"targetType">> := list(any()) %% } -type list_attributes_request() :: #{binary() => any()}. %% Example: %% s3_files_volume_configuration() :: #{ %% <<"accessPointArn">> => string(), %% <<"fileSystemArn">> => string(), %% <<"rootDirectory">> => string(), %% <<"transitEncryptionPort">> => integer() %% } -type s3_files_volume_configuration() :: #{binary() => any()}. %% Example: %% describe_daemon_revisions_response() :: #{ %% <<"daemonRevisions">> => list(daemon_revision()), %% <<"failures">> => list(failure()) %% } -type describe_daemon_revisions_response() :: #{binary() => any()}. %% Example: %% update_service_response() :: #{ %% <<"service">> => service() %% } -type update_service_response() :: #{binary() => any()}. %% Example: %% volume_from() :: #{ %% <<"readOnly">> => boolean(), %% <<"sourceContainer">> => string() %% } -type volume_from() :: #{binary() => any()}. %% Example: %% delete_service_response() :: #{ %% <<"service">> => service() %% } -type delete_service_response() :: #{binary() => any()}. %% Example: %% device() :: #{ %% <<"containerPath">> => string(), %% <<"hostPath">> => string(), %% <<"permissions">> => list(list(any())()) %% } -type device() :: #{binary() => any()}. %% Example: %% total_local_storage_g_b_request() :: #{ %% <<"max">> => float(), %% <<"min">> => float() %% } -type total_local_storage_g_b_request() :: #{binary() => any()}. %% Example: %% daemon_container_definition() :: #{ %% <<"command">> => list(string()), %% <<"cpu">> => integer(), %% <<"dependsOn">> => list(container_dependency()), %% <<"entryPoint">> => list(string()), %% <<"environment">> => list(key_value_pair()), %% <<"environmentFiles">> => list(environment_file()), %% <<"essential">> => boolean(), %% <<"firelensConfiguration">> => firelens_configuration(), %% <<"healthCheck">> => health_check(), %% <<"image">> => string(), %% <<"interactive">> => boolean(), %% <<"linuxParameters">> => daemon_linux_parameters(), %% <<"logConfiguration">> => log_configuration(), %% <<"memory">> => integer(), %% <<"memoryReservation">> => integer(), %% <<"mountPoints">> => list(mount_point()), %% <<"name">> => string(), %% <<"privileged">> => boolean(), %% <<"pseudoTerminal">> => boolean(), %% <<"readonlyRootFilesystem">> => boolean(), %% <<"repositoryCredentials">> => repository_credentials(), %% <<"restartPolicy">> => container_restart_policy(), %% <<"secrets">> => list(secret()), %% <<"startTimeout">> => integer(), %% <<"stopTimeout">> => integer(), %% <<"systemControls">> => list(system_control()), %% <<"ulimits">> => list(ulimit()), %% <<"user">> => string(), %% <<"workingDirectory">> => string() %% } -type daemon_container_definition() :: #{binary() => any()}. %% Example: %% submit_attachment_state_changes_request() :: #{ %% <<"attachments">> := list(attachment_state_change()), %% <<"cluster">> => string() %% } -type submit_attachment_state_changes_request() :: #{binary() => any()}. %% Example: %% create_express_gateway_service_response() :: #{ %% <<"service">> => e_c_s_express_gateway_service() %% } -type create_express_gateway_service_response() :: #{binary() => any()}. %% Example: %% delete_account_setting_request() :: #{ %% <<"name">> := list(any()), %% <<"principalArn">> => string() %% } -type delete_account_setting_request() :: #{binary() => any()}. %% Example: %% create_task_set_response() :: #{ %% <<"taskSet">> => task_set() %% } -type create_task_set_response() :: #{binary() => any()}. %% Example: %% instance_launch_template() :: #{ %% <<"capacityOptionType">> => list(any()), %% <<"capacityReservations">> => capacity_reservation_request(), %% <<"ec2InstanceProfileArn">> => string(), %% <<"fipsEnabled">> => boolean(), %% <<"instanceMetadataTagsPropagation">> => boolean(), %% <<"instanceRequirements">> => instance_requirements_request(), %% <<"localStorageConfiguration">> => managed_instances_local_storage_configuration(), %% <<"monitoring">> => list(any()), %% <<"networkConfiguration">> => managed_instances_network_configuration(), %% <<"storageConfiguration">> => managed_instances_storage_configuration() %% } -type instance_launch_template() :: #{binary() => any()}. %% Example: %% service_volume_configuration() :: #{ %% <<"managedEBSVolume">> => service_managed_ebs_volume_configuration(), %% <<"name">> => string() %% } -type service_volume_configuration() :: #{binary() => any()}. %% Example: %% describe_service_revisions_request() :: #{ %% <<"serviceRevisionArns">> := list(string()) %% } -type describe_service_revisions_request() :: #{binary() => any()}. %% Example: %% managed_listener_rule() :: #{ %% <<"arn">> => string(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"updatedAt">> => non_neg_integer() %% } -type managed_listener_rule() :: #{binary() => any()}. %% Example: %% list_tasks_response() :: #{ %% <<"nextToken">> => string(), %% <<"taskArns">> => list(string()) %% } -type list_tasks_response() :: #{binary() => any()}. %% Example: %% express_gateway_container() :: #{ %% <<"awsLogsConfiguration">> => express_gateway_service_aws_logs_configuration(), %% <<"command">> => list(string()), %% <<"containerPort">> => integer(), %% <<"environment">> => list(key_value_pair()), %% <<"image">> => string(), %% <<"repositoryCredentials">> => express_gateway_repository_credentials(), %% <<"secrets">> => list(secret()) %% } -type express_gateway_container() :: #{binary() => any()}. %% Example: %% create_service_response() :: #{ %% <<"service">> => service() %% } -type create_service_response() :: #{binary() => any()}. %% Example: %% task_managed_ebs_volume_configuration() :: #{ %% <<"encrypted">> => boolean(), %% <<"filesystemType">> => list(any()), %% <<"iops">> => integer(), %% <<"kmsKeyId">> => string(), %% <<"roleArn">> => string(), %% <<"sizeInGiB">> => integer(), %% <<"snapshotId">> => string(), %% <<"tagSpecifications">> => list(ebs_tag_specification()), %% <<"terminationPolicy">> => task_managed_ebs_volume_termination_policy(), %% <<"throughput">> => integer(), %% <<"volumeInitializationRate">> => integer(), %% <<"volumeType">> => string() %% } -type task_managed_ebs_volume_configuration() :: #{binary() => any()}. %% Example: %% log_configuration() :: #{ %% <<"logDriver">> => list(any()), %% <<"options">> => map(), %% <<"secretOptions">> => list(secret()) %% } -type log_configuration() :: #{binary() => any()}. %% Example: %% container_instance() :: #{ %% <<"agentConnected">> => boolean(), %% <<"agentUpdateStatus">> => list(any()), %% <<"attachments">> => list(attachment()), %% <<"attributes">> => list(attribute()), %% <<"capacityProviderName">> => string(), %% <<"containerInstanceArn">> => string(), %% <<"ec2InstanceId">> => string(), %% <<"healthStatus">> => container_instance_health_status(), %% <<"pendingTasksCount">> => integer(), %% <<"registeredAt">> => non_neg_integer(), %% <<"registeredResources">> => list(resource()), %% <<"remainingResources">> => list(resource()), %% <<"runningTasksCount">> => integer(), %% <<"status">> => string(), %% <<"statusReason">> => string(), %% <<"tags">> => list(tag()), %% <<"version">> => float(), %% <<"versionInfo">> => version_info() %% } -type container_instance() :: #{binary() => any()}. %% Example: %% stop_service_deployment_response() :: #{ %% <<"serviceDeploymentArn">> => string() %% } -type stop_service_deployment_response() :: #{binary() => any()}. %% Example: %% describe_daemon_revisions_request() :: #{ %% <<"daemonRevisionArns">> := list(string()) %% } -type describe_daemon_revisions_request() :: #{binary() => any()}. %% Example: %% service_connect_tls_certificate_authority() :: #{ %% <<"awsPcaAuthorityArn">> => string() %% } -type service_connect_tls_certificate_authority() :: #{binary() => any()}. %% Example: %% v_cpu_count_range_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type v_cpu_count_range_request() :: #{binary() => any()}. %% Example: %% deregister_task_definition_request() :: #{ %% <<"taskDefinition">> := string() %% } -type deregister_task_definition_request() :: #{binary() => any()}. %% Example: %% resource_requirement() :: #{ %% <<"type">> => list(any()), %% <<"value">> => string() %% } -type resource_requirement() :: #{binary() => any()}. %% Example: %% daemon_deployment() :: #{ %% <<"alarms">> => daemon_deployment_alarms(), %% <<"circuitBreaker">> => daemon_circuit_breaker(), %% <<"clusterArn">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"daemonDeploymentArn">> => string(), %% <<"deploymentConfiguration">> => daemon_deployment_configuration(), %% <<"finishedAt">> => non_neg_integer(), %% <<"rollback">> => daemon_rollback(), %% <<"sourceDaemonRevisions">> => list(daemon_deployment_revision_detail()), %% <<"startedAt">> => non_neg_integer(), %% <<"status">> => list(any()), %% <<"statusReason">> => string(), %% <<"stoppedAt">> => non_neg_integer(), %% <<"targetDaemonRevision">> => daemon_deployment_revision_detail() %% } -type daemon_deployment() :: #{binary() => any()}. %% Example: %% firelens_configuration() :: #{ %% <<"options">> => map(), %% <<"type">> => list(any()) %% } -type firelens_configuration() :: #{binary() => any()}. %% Example: %% version_info() :: #{ %% <<"agentHash">> => string(), %% <<"agentVersion">> => string(), %% <<"dockerVersion">> => string() %% } -type version_info() :: #{binary() => any()}. %% Example: %% updated_express_gateway_service() :: #{ %% <<"cluster">> => string(), %% <<"createdAt">> => non_neg_integer(), %% <<"serviceArn">> => string(), %% <<"serviceName">> => string(), %% <<"status">> => express_gateway_service_status(), %% <<"targetConfiguration">> => express_gateway_service_configuration(), %% <<"updatedAt">> => non_neg_integer() %% } -type updated_express_gateway_service() :: #{binary() => any()}. %% Example: %% delete_daemon_response() :: #{ %% <<"createdAt">> => non_neg_integer(), %% <<"daemonArn">> => string(), %% <<"deploymentArn">> => string(), %% <<"status">> => list(any()), %% <<"updatedAt">> => non_neg_integer() %% } -type delete_daemon_response() :: #{binary() => any()}. %% Example: %% update_service_primary_task_set_response() :: #{ %% <<"taskSet">> => task_set() %% } -type update_service_primary_task_set_response() :: #{binary() => any()}. %% Example: %% service_managed_ebs_volume_configuration() :: #{ %% <<"encrypted">> => boolean(), %% <<"filesystemType">> => list(any()), %% <<"iops">> => integer(), %% <<"kmsKeyId">> => string(), %% <<"roleArn">> => string(), %% <<"sizeInGiB">> => integer(), %% <<"snapshotId">> => string(), %% <<"tagSpecifications">> => list(ebs_tag_specification()), %% <<"throughput">> => integer(), %% <<"volumeInitializationRate">> => integer(), %% <<"volumeType">> => string() %% } -type service_managed_ebs_volume_configuration() :: #{binary() => any()}. %% Example: %% register_task_definition_response() :: #{ %% <<"tags">> => list(tag()), %% <<"taskDefinition">> => task_definition() %% } -type register_task_definition_response() :: #{binary() => any()}. %% Example: %% cluster_contains_capacity_provider_exception() :: #{ %% <<"message">> => string() %% } -type cluster_contains_capacity_provider_exception() :: #{binary() => any()}. %% Example: %% baseline_ebs_bandwidth_mbps_request() :: #{ %% <<"max">> => integer(), %% <<"min">> => integer() %% } -type baseline_ebs_bandwidth_mbps_request() :: #{binary() => any()}. %% Example: %% describe_clusters_request() :: #{ %% <<"clusters">> => list(string()), %% <<"include">> => list(list(any())()) %% } -type describe_clusters_request() :: #{binary() => any()}. %% Example: %% run_task_request() :: #{ %% <<"capacityProviderStrategy">> => list(capacity_provider_strategy_item()), %% <<"clientToken">> => string(), %% <<"cluster">> => string(), %% <<"count">> => integer(), %% <<"enableECSManagedTags">> => boolean(), %% <<"enableExecuteCommand">> => boolean(), %% <<"group">> => string(), %% <<"launchType">> => list(any()), %% <<"networkConfiguration">> => network_configuration(), %% <<"overrides">> => task_override(), %% <<"placementConstraints">> => list(placement_constraint()), %% <<"placementStrategy">> => list(placement_strategy()), %% <<"platformVersion">> => string(), %% <<"propagateTags">> => list(any()), %% <<"referenceId">> => string(), %% <<"startedBy">> => string(), %% <<"tags">> => list(tag()), %% <<"taskDefinition">> := string(), %% <<"volumeConfigurations">> => list(task_volume_configuration()) %% } -type run_task_request() :: #{binary() => any()}. %% Example: %% deregister_container_instance_response() :: #{ %% <<"containerInstance">> => container_instance() %% } -type deregister_container_instance_response() :: #{binary() => any()}. %% Example: %% deployment_ephemeral_storage() :: #{ %% <<"kmsKeyId">> => string() %% } -type deployment_ephemeral_storage() :: #{binary() => any()}. %% Example: %% cluster_service_connect_defaults_request() :: #{ %% <<"namespace">> => string() %% } -type cluster_service_connect_defaults_request() :: #{binary() => any()}. %% Example: %% list_attributes_response() :: #{ %% <<"attributes">> => list(attribute()), %% <<"nextToken">> => string() %% } -type list_attributes_response() :: #{binary() => any()}. %% Example: %% repository_credentials() :: #{ %% <<"credentialsParameter">> => string() %% } -type repository_credentials() :: #{binary() => any()}. %% Example: %% f_sx_windows_file_server_volume_configuration() :: #{ %% <<"authorizationConfig">> => f_sx_windows_file_server_authorization_config(), %% <<"fileSystemId">> => string(), %% <<"rootDirectory">> => string() %% } -type f_sx_windows_file_server_volume_configuration() :: #{binary() => any()}. %% Example: %% tmpfs() :: #{ %% <<"containerPath">> => string(), %% <<"mountOptions">> => list(string()), %% <<"size">> => integer() %% } -type tmpfs() :: #{binary() => any()}. %% Example: %% environment_file() :: #{ %% <<"type">> => list(any()), %% <<"value">> => string() %% } -type environment_file() :: #{binary() => any()}. %% Example: %% placement_strategy() :: #{ %% <<"field">> => string(), %% <<"type">> => list(any()) %% } -type placement_strategy() :: #{binary() => any()}. %% Example: %% update_cluster_response() :: #{ %% <<"cluster">> => cluster() %% } -type update_cluster_response() :: #{binary() => any()}. %% Example: %% container_dependency() :: #{ %% <<"condition">> => list(any()), %% <<"containerName">> => string() %% } -type container_dependency() :: #{binary() => any()}. %% Example: %% resource() :: #{ %% <<"doubleValue">> => float(), %% <<"integerValue">> => integer(), %% <<"longValue">> => float(), %% <<"name">> => string(), %% <<"stringSetValue">> => list(string()), %% <<"type">> => string() %% } -type resource() :: #{binary() => any()}. -type create_capacity_provider_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception() | update_in_progress_exception(). -type create_cluster_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | namespace_not_found_exception(). -type create_daemon_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type create_express_gateway_service_errors() :: server_exception() | platform_task_definition_incompatibility_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type create_service_errors() :: server_exception() | platform_task_definition_incompatibility_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | client_exception() | unsupported_feature_exception() | namespace_not_found_exception() | cluster_not_found_exception(). -type create_task_set_errors() :: limit_exceeded_exception() | server_exception() | platform_task_definition_incompatibility_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | namespace_not_found_exception() | service_not_found_exception() | cluster_not_found_exception(). -type delete_account_setting_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type delete_attributes_errors() :: server_exception() | target_not_found_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type delete_capacity_provider_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception() | update_in_progress_exception(). -type delete_cluster_errors() :: cluster_contains_capacity_provider_exception() | cluster_contains_services_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | cluster_contains_container_instances_exception() | cluster_contains_tasks_exception() | client_exception() | cluster_not_found_exception() | update_in_progress_exception(). -type delete_daemon_errors() :: daemon_not_active_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception() | daemon_not_found_exception(). -type delete_daemon_task_definition_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type delete_express_gateway_service_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type delete_service_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | service_not_found_exception() | cluster_not_found_exception(). -type delete_task_definitions_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type delete_task_set_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | task_set_not_found_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type deregister_container_instance_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type deregister_task_definition_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type describe_capacity_providers_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type describe_clusters_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type describe_container_instances_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type describe_daemon_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception() | daemon_not_found_exception(). -type describe_daemon_deployments_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type describe_daemon_revisions_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type describe_daemon_task_definition_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type describe_express_gateway_service_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | resource_not_found_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type describe_service_deployments_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type describe_service_revisions_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type describe_services_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type describe_task_definition_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type describe_task_sets_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type describe_tasks_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type discover_poll_endpoint_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type execute_command_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | target_not_connected_exception() | cluster_not_found_exception(). -type get_task_protection_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | resource_not_found_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type list_account_settings_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type list_attributes_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type list_clusters_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type list_container_instances_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type list_daemon_deployments_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type list_daemon_task_definitions_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type list_daemons_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type list_service_deployments_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type list_services_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type list_services_by_namespace_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | namespace_not_found_exception(). -type list_tags_for_resource_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type list_task_definition_families_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type list_task_definitions_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type list_tasks_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | service_not_found_exception() | cluster_not_found_exception(). -type put_account_setting_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type put_account_setting_default_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type put_attributes_errors() :: server_exception() | target_not_found_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception() | attribute_limit_exceeded_exception(). -type put_cluster_capacity_providers_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception() | resource_in_use_exception() | update_in_progress_exception(). -type register_container_instance_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type register_daemon_task_definition_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type register_task_definition_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception(). -type run_task_errors() :: blocked_exception() | server_exception() | platform_task_definition_incompatibility_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | conflict_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type start_task_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | namespace_not_found_exception() | cluster_not_found_exception(). -type stop_service_deployment_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | conflict_exception() | client_exception() | unsupported_feature_exception() | service_deployment_not_found_exception(). -type stop_task_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type submit_attachment_state_changes_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type submit_container_state_change_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type submit_task_state_change_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type tag_resource_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | resource_not_found_exception() | client_exception() | cluster_not_found_exception(). -type untag_resource_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | resource_not_found_exception() | client_exception() | cluster_not_found_exception(). -type update_capacity_provider_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type update_cluster_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | namespace_not_found_exception() | cluster_not_found_exception(). -type update_cluster_settings_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception() | update_in_progress_exception(). -type update_container_agent_errors() :: server_exception() | missing_version_exception() | invalid_parameter_exception() | access_denied_exception() | no_update_available_exception() | client_exception() | cluster_not_found_exception() | update_in_progress_exception(). -type update_container_instances_state_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | client_exception() | cluster_not_found_exception(). -type update_daemon_errors() :: daemon_not_active_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception() | daemon_not_found_exception(). -type update_express_gateway_service_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type update_service_errors() :: server_exception() | platform_task_definition_incompatibility_exception() | invalid_parameter_exception() | access_denied_exception() | platform_unknown_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | namespace_not_found_exception() | service_not_found_exception() | cluster_not_found_exception(). -type update_service_primary_task_set_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | task_set_not_found_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). -type update_task_protection_errors() :: server_exception() | invalid_parameter_exception() | access_denied_exception() | resource_not_found_exception() | client_exception() | unsupported_feature_exception() | cluster_not_found_exception(). -type update_task_set_errors() :: limit_exceeded_exception() | server_exception() | invalid_parameter_exception() | access_denied_exception() | task_set_not_found_exception() | service_not_active_exception() | client_exception() | unsupported_feature_exception() | service_not_found_exception() | cluster_not_found_exception(). %%==================================================================== %% API %%==================================================================== %% @doc Creates a capacity provider. %% %% Capacity providers are associated with a cluster and are used in capacity %% provider strategies to facilitate cluster auto scaling. You can create %% capacity providers for Amazon ECS Managed Instances and EC2 instances. %% Fargate has the predefined `FARGATE' and `FARGATE_SPOT' capacity %% providers. -spec create_capacity_provider(aws_client:aws_client(), create_capacity_provider_request()) -> {ok, create_capacity_provider_response(), tuple()} | {error, any()} | {error, create_capacity_provider_errors(), tuple()}. create_capacity_provider(Client, Input) when is_map(Client), is_map(Input) -> create_capacity_provider(Client, Input, []). -spec create_capacity_provider(aws_client:aws_client(), create_capacity_provider_request(), proplists:proplist()) -> {ok, create_capacity_provider_response(), tuple()} | {error, any()} | {error, create_capacity_provider_errors(), tuple()}. create_capacity_provider(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateCapacityProvider">>, Input, Options). %% @doc Creates a new Amazon ECS cluster. %% %% By default, your account receives a `default' cluster when you launch %% your first container instance. However, you can create your own cluster %% with a unique name. %% %% When you call the CreateCluster: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html %% API operation, Amazon ECS attempts to create the Amazon ECS service-linked %% role for your account. This is so that it can manage required resources in %% other Amazon Web Services services on your behalf. However, if the user %% that makes the call doesn't have permissions to create the %% service-linked role, it isn't created. For more information, see Using %% service-linked roles for Amazon ECS: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html %% in the Amazon Elastic Container Service Developer Guide. -spec create_cluster(aws_client:aws_client(), create_cluster_request()) -> {ok, create_cluster_response(), tuple()} | {error, any()} | {error, create_cluster_errors(), tuple()}. create_cluster(Client, Input) when is_map(Client), is_map(Input) -> create_cluster(Client, Input, []). -spec create_cluster(aws_client:aws_client(), create_cluster_request(), proplists:proplist()) -> {ok, create_cluster_response(), tuple()} | {error, any()} | {error, create_cluster_errors(), tuple()}. create_cluster(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateCluster">>, Input, Options). %% @doc Creates a new daemon in the specified cluster and capacity providers. %% %% A daemon deploys cross-cutting software agents such as security %% monitoring, telemetry, and logging independently across your Amazon ECS %% infrastructure. %% %% Amazon ECS deploys exactly one daemon task on each container instance of %% the specified capacity providers. When a container instance registers with %% the cluster, Amazon ECS automatically starts daemon tasks. Amazon ECS %% starts a daemon task before scheduling other tasks. %% %% Daemons are essential for instance health - if a daemon task stops, Amazon %% ECS automatically drains and replaces that container instance. %% %% ECS Managed Daemons is only supported for Amazon ECS Managed Instances %% Capacity Providers. -spec create_daemon(aws_client:aws_client(), create_daemon_request()) -> {ok, create_daemon_response(), tuple()} | {error, any()} | {error, create_daemon_errors(), tuple()}. create_daemon(Client, Input) when is_map(Client), is_map(Input) -> create_daemon(Client, Input, []). -spec create_daemon(aws_client:aws_client(), create_daemon_request(), proplists:proplist()) -> {ok, create_daemon_response(), tuple()} | {error, any()} | {error, create_daemon_errors(), tuple()}. create_daemon(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateDaemon">>, Input, Options). %% @doc Creates an Express service that simplifies deploying containerized %% web applications on Amazon ECS with managed Amazon Web Services %% infrastructure. %% %% This operation provisions and configures Application Load Balancers, %% target groups, security groups, and auto-scaling policies automatically. %% %% Specify a primary container configuration with your application image and %% basic settings. Amazon ECS creates the necessary Amazon Web Services %% resources for traffic distribution, health monitoring, network access %% control, and capacity management. %% %% Provide an execution role for task operations and an infrastructure role %% for managing Amazon Web Services resources on your behalf. -spec create_express_gateway_service(aws_client:aws_client(), create_express_gateway_service_request()) -> {ok, create_express_gateway_service_response(), tuple()} | {error, any()} | {error, create_express_gateway_service_errors(), tuple()}. create_express_gateway_service(Client, Input) when is_map(Client), is_map(Input) -> create_express_gateway_service(Client, Input, []). -spec create_express_gateway_service(aws_client:aws_client(), create_express_gateway_service_request(), proplists:proplist()) -> {ok, create_express_gateway_service_response(), tuple()} | {error, any()} | {error, create_express_gateway_service_errors(), tuple()}. create_express_gateway_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateExpressGatewayService">>, Input, Options). %% @doc Runs and maintains your desired number of tasks from a specified task %% definition. %% %% If the number of tasks running in a service drops below the %% `desiredCount', Amazon ECS runs another copy of the task in the %% specified cluster. To update an existing service, use UpdateService: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html. %% %% On March 21, 2024, a change was made to resolve the task definition %% revision before authorization. When a task definition revision is not %% specified, authorization will occur using the latest revision of a task %% definition. %% %% Amazon Elastic Inference (EI) is no longer available to customers. %% %% In addition to maintaining the desired count of tasks in your service, you %% can optionally run your service behind one or more load balancers. The %% load balancers distribute traffic across the tasks that are associated %% with the service. For more information, see Service load balancing: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html %% in the Amazon Elastic Container Service Developer Guide. %% %% You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the %% volume when creating or updating a service. `volumeConfigurations' is %% only supported for REPLICA service and not DAEMON service. For more %% information, see Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. %% %% Tasks for services that don't use a load balancer are considered %% healthy if they're in the `RUNNING' state. Tasks for services that %% use a load balancer are considered healthy if they're in the %% `RUNNING' state and are reported as healthy by the load balancer. %% %% There are two service scheduler strategies available: %% %% `REPLICA' - The replica scheduling strategy places and maintains your %% desired number of tasks across your cluster. By default, the service %% scheduler spreads tasks across Availability Zones. You can use task %% placement strategies and constraints to customize task placement %% decisions. For more information, see Service scheduler concepts: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html %% in the Amazon Elastic Container Service Developer Guide. %% %% `DAEMON' - The daemon scheduling strategy deploys exactly one task on %% each active container instance that meets all of the task placement %% constraints that you specify in your cluster. The service scheduler also %% evaluates the task placement constraints for running tasks. It also stops %% tasks that don't meet the placement constraints. When using this %% strategy, you don't need to specify a desired number of tasks, a task %% placement strategy, or use Service Auto Scaling policies. For more %% information, see Amazon ECS services: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html %% in the Amazon Elastic Container Service Developer Guide. %% %% The deployment controller is the mechanism that determines how tasks are %% deployed for your service. The valid options are: %% %% ECS %% %% When you create a service which uses the `ECS' deployment controller, %% you can choose between the following deployment strategies (which you can %% set in the “`strategy'” field in “`deploymentConfiguration'”): : %% %% `ROLLING': When you create a service which uses the rolling update %% (`ROLLING') deployment strategy, the Amazon ECS service scheduler %% replaces the currently running tasks with new tasks. The number of tasks %% that Amazon ECS adds or removes from the service during a rolling update %% is controlled by the service deployment configuration. For more %% information, see Deploy Amazon ECS services by replacing tasks: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html %% in the Amazon Elastic Container Service Developer Guide. %% %% Rolling update deployments are best suited for the following scenarios: %% %% Gradual service updates: You need to update your service incrementally %% without taking the entire service offline at once. %% %% Limited resource requirements: You want to avoid the additional resource %% costs of running two complete environments simultaneously (as required by %% blue/green deployments). %% %% Acceptable deployment time: Your application can tolerate a longer %% deployment process, as rolling updates replace tasks one by one. %% %% No need for instant roll back: Your service can tolerate a rollback %% process that takes minutes rather than seconds. %% %% Simple deployment process: You prefer a straightforward deployment %% approach without the complexity of managing multiple environments, target %% groups, and listeners. %% %% No load balancer requirement: Your service doesn't use or require a %% load balancer, Application Load Balancer, Network Load Balancer, or %% Service Connect (which are required for blue/green deployments). %% %% Stateful applications: Your application maintains state that makes it %% difficult to run two parallel environments. %% %% Cost sensitivity: You want to minimize deployment costs by not running %% duplicate environments during deployment. %% %% Rolling updates are the default deployment strategy for services and %% provide a balance between deployment safety and resource efficiency for %% many common application scenarios. %% %% `BLUE_GREEN': A blue/green deployment strategy (`BLUE_GREEN') is a %% release methodology that reduces downtime and risk by running two %% identical production environments called blue and green. With Amazon ECS %% blue/green deployments, you can validate new service revisions before %% directing production traffic to them. This approach provides a safer way %% to deploy changes with the ability to quickly roll back if needed. For %% more information, see Amazon ECS blue/green deployments: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-blue-green.html %% in the Amazon Elastic Container Service Developer Guide. %% %% Amazon ECS blue/green deployments are best suited for the following %% scenarios: %% %% Service validation: When you need to validate new service revisions before %% directing production traffic to them %% %% Zero downtime: When your service requires zero-downtime deployments %% %% Instant roll back: When you need the ability to quickly roll back if %% issues are detected %% %% Load balancer requirement: When your service uses Application Load %% Balancer, Network Load Balancer, or Service Connect %% %% `LINEAR': A linear deployment strategy (`LINEAR') gradually shifts %% traffic from the current production environment to a new environment in %% equal percentage increments. With Amazon ECS linear deployments, you can %% control the pace of traffic shifting and validate new service revisions %% with increasing amounts of production traffic. %% %% Linear deployments are best suited for the following scenarios: %% %% Gradual validation: When you want to gradually validate your new service %% version with increasing traffic %% %% Performance monitoring: When you need time to monitor metrics and %% performance during the deployment %% %% Risk minimization: When you want to minimize risk by exposing the new %% version to production traffic incrementally %% %% Load balancer requirement: When your service uses Application Load %% Balancer or Service Connect %% %% `CANARY': A canary deployment strategy (`CANARY') shifts a small %% percentage of traffic to the new service revision first, then shifts the %% remaining traffic all at once after a specified time period. This allows %% you to test the new version with a subset of users before full deployment. %% %% Canary deployments are best suited for the following scenarios: %% %% Feature testing: When you want to test new features with a small subset of %% users before full rollout %% %% Production validation: When you need to validate performance and %% functionality with real production traffic %% %% Blast radius control: When you want to minimize blast radius if issues are %% discovered in the new version %% %% Load balancer requirement: When your service uses Application Load %% Balancer or Service Connect %% %% External %% %% Use a third-party deployment controller. %% %% Blue/green deployment (powered by CodeDeploy) %% %% CodeDeploy installs an updated version of the application as a new %% replacement task set and reroutes production traffic from the original %% application task set to the replacement task set. The original task set is %% terminated after a successful deployment. Use this deployment controller %% to verify a new deployment of a service before sending production traffic %% to it. %% %% When creating a service that uses the `EXTERNAL' deployment %% controller, you can specify only parameters that aren't controlled at %% the task set level. The only required parameter is the service name. You %% control your services using the CreateTaskSet: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html. %% For more information, see Amazon ECS deployment types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. %% %% When the service scheduler launches new tasks, it determines task %% placement. For information about task placement and task placement %% strategies, see Amazon ECS task placement: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html %% in the Amazon Elastic Container Service Developer Guide -spec create_service(aws_client:aws_client(), create_service_request()) -> {ok, create_service_response(), tuple()} | {error, any()} | {error, create_service_errors(), tuple()}. create_service(Client, Input) when is_map(Client), is_map(Input) -> create_service(Client, Input, []). -spec create_service(aws_client:aws_client(), create_service_request(), proplists:proplist()) -> {ok, create_service_response(), tuple()} | {error, any()} | {error, create_service_errors(), tuple()}. create_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateService">>, Input, Options). %% @doc Create a task set in the specified cluster and service. %% %% This is used when a service uses the `EXTERNAL' deployment controller %% type. For more information, see Amazon ECS deployment types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. %% %% On March 21, 2024, a change was made to resolve the task definition %% revision before authorization. When a task definition revision is not %% specified, authorization will occur using the latest revision of a task %% definition. %% %% For information about the maximum number of task sets and other quotas, %% see Amazon ECS service quotas: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html %% in the Amazon Elastic Container Service Developer Guide. -spec create_task_set(aws_client:aws_client(), create_task_set_request()) -> {ok, create_task_set_response(), tuple()} | {error, any()} | {error, create_task_set_errors(), tuple()}. create_task_set(Client, Input) when is_map(Client), is_map(Input) -> create_task_set(Client, Input, []). -spec create_task_set(aws_client:aws_client(), create_task_set_request(), proplists:proplist()) -> {ok, create_task_set_response(), tuple()} | {error, any()} | {error, create_task_set_errors(), tuple()}. create_task_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateTaskSet">>, Input, Options). %% @doc Disables an account setting for a specified user, role, or the root %% user for an account. -spec delete_account_setting(aws_client:aws_client(), delete_account_setting_request()) -> {ok, delete_account_setting_response(), tuple()} | {error, any()} | {error, delete_account_setting_errors(), tuple()}. delete_account_setting(Client, Input) when is_map(Client), is_map(Input) -> delete_account_setting(Client, Input, []). -spec delete_account_setting(aws_client:aws_client(), delete_account_setting_request(), proplists:proplist()) -> {ok, delete_account_setting_response(), tuple()} | {error, any()} | {error, delete_account_setting_errors(), tuple()}. delete_account_setting(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteAccountSetting">>, Input, Options). %% @doc Deletes one or more custom attributes from an Amazon ECS resource. -spec delete_attributes(aws_client:aws_client(), delete_attributes_request()) -> {ok, delete_attributes_response(), tuple()} | {error, any()} | {error, delete_attributes_errors(), tuple()}. delete_attributes(Client, Input) when is_map(Client), is_map(Input) -> delete_attributes(Client, Input, []). -spec delete_attributes(aws_client:aws_client(), delete_attributes_request(), proplists:proplist()) -> {ok, delete_attributes_response(), tuple()} | {error, any()} | {error, delete_attributes_errors(), tuple()}. delete_attributes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteAttributes">>, Input, Options). %% @doc Deletes the specified capacity provider. %% %% The `FARGATE' and `FARGATE_SPOT' capacity providers are reserved %% and can't be deleted. You can disassociate them from a cluster using %% either PutClusterCapacityProviders: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html %% or by deleting the cluster. %% %% Prior to a capacity provider being deleted, the capacity provider must be %% removed from the capacity provider strategy from all services. The %% UpdateService: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html %% API can be used to remove a capacity provider from a service's %% capacity provider strategy. When updating a service, the %% `forceNewDeployment' option can be used to ensure that any tasks using %% the Amazon EC2 instance capacity provided by the capacity provider are %% transitioned to use the capacity from the remaining capacity providers. %% Only capacity providers that aren't associated with a cluster can be %% deleted. To remove a capacity provider from a cluster, you can either use %% PutClusterCapacityProviders: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html %% or delete the cluster. -spec delete_capacity_provider(aws_client:aws_client(), delete_capacity_provider_request()) -> {ok, delete_capacity_provider_response(), tuple()} | {error, any()} | {error, delete_capacity_provider_errors(), tuple()}. delete_capacity_provider(Client, Input) when is_map(Client), is_map(Input) -> delete_capacity_provider(Client, Input, []). -spec delete_capacity_provider(aws_client:aws_client(), delete_capacity_provider_request(), proplists:proplist()) -> {ok, delete_capacity_provider_response(), tuple()} | {error, any()} | {error, delete_capacity_provider_errors(), tuple()}. delete_capacity_provider(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteCapacityProvider">>, Input, Options). %% @doc Deletes the specified cluster. %% %% The cluster transitions to the `INACTIVE' state. Clusters with an %% `INACTIVE' status might remain discoverable in your account for a %% period of time. However, this behavior is subject to change in the future. %% We don't recommend that you rely on `INACTIVE' clusters %% persisting. %% %% You must deregister all container instances from this cluster before you %% may delete it. You can list the container instances in a cluster with %% ListContainerInstances: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html %% and deregister them with DeregisterContainerInstance: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html. -spec delete_cluster(aws_client:aws_client(), delete_cluster_request()) -> {ok, delete_cluster_response(), tuple()} | {error, any()} | {error, delete_cluster_errors(), tuple()}. delete_cluster(Client, Input) when is_map(Client), is_map(Input) -> delete_cluster(Client, Input, []). -spec delete_cluster(aws_client:aws_client(), delete_cluster_request(), proplists:proplist()) -> {ok, delete_cluster_response(), tuple()} | {error, any()} | {error, delete_cluster_errors(), tuple()}. delete_cluster(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteCluster">>, Input, Options). %% @doc Deletes the specified daemon. %% %% The daemon must be in an `ACTIVE' state to be deleted. Deleting a %% daemon stops all running daemon tasks on the associated container %% instances. Amazon ECS drains existing container instances and provisions %% new instances without the deleted daemon. Amazon ECS automatically %% launches replacement tasks for your Amazon ECS services. %% %% ECS Managed Daemons is only supported for Amazon ECS Managed Instances %% Capacity Providers. -spec delete_daemon(aws_client:aws_client(), delete_daemon_request()) -> {ok, delete_daemon_response(), tuple()} | {error, any()} | {error, delete_daemon_errors(), tuple()}. delete_daemon(Client, Input) when is_map(Client), is_map(Input) -> delete_daemon(Client, Input, []). -spec delete_daemon(aws_client:aws_client(), delete_daemon_request(), proplists:proplist()) -> {ok, delete_daemon_response(), tuple()} | {error, any()} | {error, delete_daemon_errors(), tuple()}. delete_daemon(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteDaemon">>, Input, Options). %% @doc Deletes the specified daemon task definition. %% %% After a daemon task definition is deleted, no new daemons can be created %% using this definition. Existing daemons that reference the deleted daemon %% task definition continue to run. %% %% A daemon task definition must be in an `ACTIVE' state to be deleted. -spec delete_daemon_task_definition(aws_client:aws_client(), delete_daemon_task_definition_request()) -> {ok, delete_daemon_task_definition_response(), tuple()} | {error, any()} | {error, delete_daemon_task_definition_errors(), tuple()}. delete_daemon_task_definition(Client, Input) when is_map(Client), is_map(Input) -> delete_daemon_task_definition(Client, Input, []). -spec delete_daemon_task_definition(aws_client:aws_client(), delete_daemon_task_definition_request(), proplists:proplist()) -> {ok, delete_daemon_task_definition_response(), tuple()} | {error, any()} | {error, delete_daemon_task_definition_errors(), tuple()}. delete_daemon_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteDaemonTaskDefinition">>, Input, Options). %% @doc Deletes an Express service and removes all associated Amazon Web %% Services resources. %% %% This operation stops service tasks, removes the Application Load Balancer, %% target groups, security groups, auto-scaling policies, and other managed %% infrastructure components. %% %% The service enters a `DRAINING' state where existing tasks complete %% current requests without starting new tasks. After all tasks stop, the %% service and infrastructure are permanently removed. %% %% This operation cannot be reversed. Back up important data and verify the %% service is no longer needed before deletion. -spec delete_express_gateway_service(aws_client:aws_client(), delete_express_gateway_service_request()) -> {ok, delete_express_gateway_service_response(), tuple()} | {error, any()} | {error, delete_express_gateway_service_errors(), tuple()}. delete_express_gateway_service(Client, Input) when is_map(Client), is_map(Input) -> delete_express_gateway_service(Client, Input, []). -spec delete_express_gateway_service(aws_client:aws_client(), delete_express_gateway_service_request(), proplists:proplist()) -> {ok, delete_express_gateway_service_response(), tuple()} | {error, any()} | {error, delete_express_gateway_service_errors(), tuple()}. delete_express_gateway_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteExpressGatewayService">>, Input, Options). %% @doc Deletes a specified service within a cluster. %% %% You can delete a service if you have no running tasks in it and the %% desired task count is zero. If the service is actively maintaining tasks, %% you can't delete it, and you must update the service to a desired task %% count of zero. For more information, see UpdateService: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html. %% %% When you delete a service, if there are still running tasks that require %% cleanup, the service status moves from `ACTIVE' to `DRAINING', and %% the service is no longer visible in the console or in the ListServices: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html %% API operation. After all tasks have transitioned to either `STOPPING' %% or `STOPPED' status, the service status moves from `DRAINING' to %% `INACTIVE'. Services in the `DRAINING' or `INACTIVE' status %% can still be viewed with the DescribeServices: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html %% API operation. However, in the future, `INACTIVE' services may be %% cleaned up and purged from Amazon ECS record keeping, and %% DescribeServices: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html %% calls on those services return a `ServiceNotFoundException' error. %% %% If you attempt to create a new service with the same name as an existing %% service in either `ACTIVE' or `DRAINING' status, you receive an %% error. -spec delete_service(aws_client:aws_client(), delete_service_request()) -> {ok, delete_service_response(), tuple()} | {error, any()} | {error, delete_service_errors(), tuple()}. delete_service(Client, Input) when is_map(Client), is_map(Input) -> delete_service(Client, Input, []). -spec delete_service(aws_client:aws_client(), delete_service_request(), proplists:proplist()) -> {ok, delete_service_response(), tuple()} | {error, any()} | {error, delete_service_errors(), tuple()}. delete_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteService">>, Input, Options). %% @doc Deletes one or more task definitions. %% %% You must deregister a task definition revision before you delete it. For %% more information, see DeregisterTaskDefinition: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html. %% %% When you delete a task definition revision, it is immediately transitions %% from the `INACTIVE' to `DELETE_IN_PROGRESS'. Existing tasks and %% services that reference a `DELETE_IN_PROGRESS' task definition %% revision continue to run without disruption. Existing services that %% reference a `DELETE_IN_PROGRESS' task definition revision can still %% scale up or down by modifying the service's desired count. %% %% You can't use a `DELETE_IN_PROGRESS' task definition revision to %% run new tasks or create new services. You also can't update an %% existing service to reference a `DELETE_IN_PROGRESS' task definition %% revision. %% %% A task definition revision will stay in `DELETE_IN_PROGRESS' status %% until all the associated tasks and services have been terminated. %% %% When you delete all `INACTIVE' task definition revisions, the task %% definition name is not displayed in the console and not returned in the %% API. If a task definition revisions are in the `DELETE_IN_PROGRESS' %% state, the task definition name is displayed in the console and returned %% in the API. The task definition name is retained by Amazon ECS and the %% revision is incremented the next time you create a task definition with %% that name. -spec delete_task_definitions(aws_client:aws_client(), delete_task_definitions_request()) -> {ok, delete_task_definitions_response(), tuple()} | {error, any()} | {error, delete_task_definitions_errors(), tuple()}. delete_task_definitions(Client, Input) when is_map(Client), is_map(Input) -> delete_task_definitions(Client, Input, []). -spec delete_task_definitions(aws_client:aws_client(), delete_task_definitions_request(), proplists:proplist()) -> {ok, delete_task_definitions_response(), tuple()} | {error, any()} | {error, delete_task_definitions_errors(), tuple()}. delete_task_definitions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteTaskDefinitions">>, Input, Options). %% @doc Deletes a specified task set within a service. %% %% This is used when a service uses the `EXTERNAL' deployment controller %% type. For more information, see Amazon ECS deployment types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. -spec delete_task_set(aws_client:aws_client(), delete_task_set_request()) -> {ok, delete_task_set_response(), tuple()} | {error, any()} | {error, delete_task_set_errors(), tuple()}. delete_task_set(Client, Input) when is_map(Client), is_map(Input) -> delete_task_set(Client, Input, []). -spec delete_task_set(aws_client:aws_client(), delete_task_set_request(), proplists:proplist()) -> {ok, delete_task_set_response(), tuple()} | {error, any()} | {error, delete_task_set_errors(), tuple()}. delete_task_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteTaskSet">>, Input, Options). %% @doc Deregisters an Amazon ECS container instance from the specified %% cluster. %% %% This instance is no longer available to run tasks. %% %% If you intend to use the container instance for some other purpose after %% deregistration, we recommend that you stop all of the tasks running on the %% container instance before deregistration. That prevents any orphaned tasks %% from consuming resources. %% %% Deregistering a container instance removes the instance from a cluster, %% but it doesn't terminate the EC2 instance. If you are finished using %% the instance, be sure to terminate it in the Amazon EC2 console to stop %% billing. %% %% If you terminate a running container instance, Amazon ECS automatically %% deregisters the instance from your cluster (stopped container instances or %% instances with disconnected agents aren't automatically deregistered %% when terminated). -spec deregister_container_instance(aws_client:aws_client(), deregister_container_instance_request()) -> {ok, deregister_container_instance_response(), tuple()} | {error, any()} | {error, deregister_container_instance_errors(), tuple()}. deregister_container_instance(Client, Input) when is_map(Client), is_map(Input) -> deregister_container_instance(Client, Input, []). -spec deregister_container_instance(aws_client:aws_client(), deregister_container_instance_request(), proplists:proplist()) -> {ok, deregister_container_instance_response(), tuple()} | {error, any()} | {error, deregister_container_instance_errors(), tuple()}. deregister_container_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeregisterContainerInstance">>, Input, Options). %% @doc Deregisters the specified task definition by family and revision. %% %% Upon deregistration, the task definition is marked as `INACTIVE'. %% Existing tasks and services that reference an `INACTIVE' task %% definition continue to run without disruption. Existing services that %% reference an `INACTIVE' task definition can still scale up or down by %% modifying the service's desired count. If you want to delete a task %% definition revision, you must first deregister the task definition %% revision. %% %% You can't use an `INACTIVE' task definition to run new tasks or %% create new services, and you can't update an existing service to %% reference an `INACTIVE' task definition. However, there may be up to a %% 10-minute window following deregistration where these restrictions have %% not yet taken effect. %% %% At this time, `INACTIVE' task definitions remain discoverable in your %% account indefinitely. However, this behavior is subject to change in the %% future. We don't recommend that you rely on `INACTIVE' task %% definitions persisting beyond the lifecycle of any associated tasks and %% services. %% %% You must deregister a task definition revision before you delete it. For %% more information, see DeleteTaskDefinitions: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteTaskDefinitions.html. -spec deregister_task_definition(aws_client:aws_client(), deregister_task_definition_request()) -> {ok, deregister_task_definition_response(), tuple()} | {error, any()} | {error, deregister_task_definition_errors(), tuple()}. deregister_task_definition(Client, Input) when is_map(Client), is_map(Input) -> deregister_task_definition(Client, Input, []). -spec deregister_task_definition(aws_client:aws_client(), deregister_task_definition_request(), proplists:proplist()) -> {ok, deregister_task_definition_response(), tuple()} | {error, any()} | {error, deregister_task_definition_errors(), tuple()}. deregister_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeregisterTaskDefinition">>, Input, Options). %% @doc Describes one or more of your capacity providers. -spec describe_capacity_providers(aws_client:aws_client(), describe_capacity_providers_request()) -> {ok, describe_capacity_providers_response(), tuple()} | {error, any()} | {error, describe_capacity_providers_errors(), tuple()}. describe_capacity_providers(Client, Input) when is_map(Client), is_map(Input) -> describe_capacity_providers(Client, Input, []). -spec describe_capacity_providers(aws_client:aws_client(), describe_capacity_providers_request(), proplists:proplist()) -> {ok, describe_capacity_providers_response(), tuple()} | {error, any()} | {error, describe_capacity_providers_errors(), tuple()}. describe_capacity_providers(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeCapacityProviders">>, Input, Options). %% @doc Describes one or more of your clusters. %% %% For CLI examples, see describe-clusters.rst: %% https://github.com/aws/aws-cli/blob/develop/awscli/examples/ecs/describe-clusters.rst %% on GitHub. -spec describe_clusters(aws_client:aws_client(), describe_clusters_request()) -> {ok, describe_clusters_response(), tuple()} | {error, any()} | {error, describe_clusters_errors(), tuple()}. describe_clusters(Client, Input) when is_map(Client), is_map(Input) -> describe_clusters(Client, Input, []). -spec describe_clusters(aws_client:aws_client(), describe_clusters_request(), proplists:proplist()) -> {ok, describe_clusters_response(), tuple()} | {error, any()} | {error, describe_clusters_errors(), tuple()}. describe_clusters(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeClusters">>, Input, Options). %% @doc Describes one or more container instances. %% %% Returns metadata about each container instance requested. -spec describe_container_instances(aws_client:aws_client(), describe_container_instances_request()) -> {ok, describe_container_instances_response(), tuple()} | {error, any()} | {error, describe_container_instances_errors(), tuple()}. describe_container_instances(Client, Input) when is_map(Client), is_map(Input) -> describe_container_instances(Client, Input, []). -spec describe_container_instances(aws_client:aws_client(), describe_container_instances_request(), proplists:proplist()) -> {ok, describe_container_instances_response(), tuple()} | {error, any()} | {error, describe_container_instances_errors(), tuple()}. describe_container_instances(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeContainerInstances">>, Input, Options). %% @doc Describes the specified daemon. -spec describe_daemon(aws_client:aws_client(), describe_daemon_request()) -> {ok, describe_daemon_response(), tuple()} | {error, any()} | {error, describe_daemon_errors(), tuple()}. describe_daemon(Client, Input) when is_map(Client), is_map(Input) -> describe_daemon(Client, Input, []). -spec describe_daemon(aws_client:aws_client(), describe_daemon_request(), proplists:proplist()) -> {ok, describe_daemon_response(), tuple()} | {error, any()} | {error, describe_daemon_errors(), tuple()}. describe_daemon(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeDaemon">>, Input, Options). %% @doc Describes one or more of your daemon deployments. %% %% A daemon deployment orchestrates the progressive rollout of daemon task %% updates across container instances managed by the daemon's capacity %% providers. Each deployment includes circuit breaker and alarm-based %% rollback capabilities. -spec describe_daemon_deployments(aws_client:aws_client(), describe_daemon_deployments_request()) -> {ok, describe_daemon_deployments_response(), tuple()} | {error, any()} | {error, describe_daemon_deployments_errors(), tuple()}. describe_daemon_deployments(Client, Input) when is_map(Client), is_map(Input) -> describe_daemon_deployments(Client, Input, []). -spec describe_daemon_deployments(aws_client:aws_client(), describe_daemon_deployments_request(), proplists:proplist()) -> {ok, describe_daemon_deployments_response(), tuple()} | {error, any()} | {error, describe_daemon_deployments_errors(), tuple()}. describe_daemon_deployments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeDaemonDeployments">>, Input, Options). %% @doc Describes one or more of your daemon revisions. %% %% A daemon revision is a snapshot of a daemon's configuration at the %% time a deployment was initiated. It captures the daemon task definition, %% container images, tag propagation, and execute command settings. Daemon %% revisions are immutable. -spec describe_daemon_revisions(aws_client:aws_client(), describe_daemon_revisions_request()) -> {ok, describe_daemon_revisions_response(), tuple()} | {error, any()} | {error, describe_daemon_revisions_errors(), tuple()}. describe_daemon_revisions(Client, Input) when is_map(Client), is_map(Input) -> describe_daemon_revisions(Client, Input, []). -spec describe_daemon_revisions(aws_client:aws_client(), describe_daemon_revisions_request(), proplists:proplist()) -> {ok, describe_daemon_revisions_response(), tuple()} | {error, any()} | {error, describe_daemon_revisions_errors(), tuple()}. describe_daemon_revisions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeDaemonRevisions">>, Input, Options). %% @doc Describes a daemon task definition. %% %% You can specify a `family' and `revision' to find information %% about a specific daemon task definition, or you can simply specify the %% family to find the latest `ACTIVE' revision in that family. -spec describe_daemon_task_definition(aws_client:aws_client(), describe_daemon_task_definition_request()) -> {ok, describe_daemon_task_definition_response(), tuple()} | {error, any()} | {error, describe_daemon_task_definition_errors(), tuple()}. describe_daemon_task_definition(Client, Input) when is_map(Client), is_map(Input) -> describe_daemon_task_definition(Client, Input, []). -spec describe_daemon_task_definition(aws_client:aws_client(), describe_daemon_task_definition_request(), proplists:proplist()) -> {ok, describe_daemon_task_definition_response(), tuple()} | {error, any()} | {error, describe_daemon_task_definition_errors(), tuple()}. describe_daemon_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeDaemonTaskDefinition">>, Input, Options). %% @doc Retrieves detailed information about an Express service, including %% current status, configuration, managed infrastructure, and service %% revisions. %% %% Returns comprehensive service details, active service revisions, ingress %% paths with endpoints, and managed Amazon Web Services resource status %% including load balancers and auto-scaling policies. %% %% Use the `include' parameter to retrieve additional information such as %% resource tags. -spec describe_express_gateway_service(aws_client:aws_client(), describe_express_gateway_service_request()) -> {ok, describe_express_gateway_service_response(), tuple()} | {error, any()} | {error, describe_express_gateway_service_errors(), tuple()}. describe_express_gateway_service(Client, Input) when is_map(Client), is_map(Input) -> describe_express_gateway_service(Client, Input, []). -spec describe_express_gateway_service(aws_client:aws_client(), describe_express_gateway_service_request(), proplists:proplist()) -> {ok, describe_express_gateway_service_response(), tuple()} | {error, any()} | {error, describe_express_gateway_service_errors(), tuple()}. describe_express_gateway_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeExpressGatewayService">>, Input, Options). %% @doc Describes one or more of your service deployments. %% %% A service deployment happens when you release a software update for the %% service. For more information, see View service history using Amazon ECS %% service deployments: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-deployment.html. -spec describe_service_deployments(aws_client:aws_client(), describe_service_deployments_request()) -> {ok, describe_service_deployments_response(), tuple()} | {error, any()} | {error, describe_service_deployments_errors(), tuple()}. describe_service_deployments(Client, Input) when is_map(Client), is_map(Input) -> describe_service_deployments(Client, Input, []). -spec describe_service_deployments(aws_client:aws_client(), describe_service_deployments_request(), proplists:proplist()) -> {ok, describe_service_deployments_response(), tuple()} | {error, any()} | {error, describe_service_deployments_errors(), tuple()}. describe_service_deployments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeServiceDeployments">>, Input, Options). %% @doc Describes one or more service revisions. %% %% A service revision is a version of the service that includes the values %% for the Amazon ECS resources (for example, task definition) and the %% environment resources (for example, load balancers, subnets, and security %% groups). For more information, see Amazon ECS service revisions: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-revision.html. %% %% You can't describe a service revision that was created before October %% 25, 2024. -spec describe_service_revisions(aws_client:aws_client(), describe_service_revisions_request()) -> {ok, describe_service_revisions_response(), tuple()} | {error, any()} | {error, describe_service_revisions_errors(), tuple()}. describe_service_revisions(Client, Input) when is_map(Client), is_map(Input) -> describe_service_revisions(Client, Input, []). -spec describe_service_revisions(aws_client:aws_client(), describe_service_revisions_request(), proplists:proplist()) -> {ok, describe_service_revisions_response(), tuple()} | {error, any()} | {error, describe_service_revisions_errors(), tuple()}. describe_service_revisions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeServiceRevisions">>, Input, Options). %% @doc Describes the specified services running in your cluster. -spec describe_services(aws_client:aws_client(), describe_services_request()) -> {ok, describe_services_response(), tuple()} | {error, any()} | {error, describe_services_errors(), tuple()}. describe_services(Client, Input) when is_map(Client), is_map(Input) -> describe_services(Client, Input, []). -spec describe_services(aws_client:aws_client(), describe_services_request(), proplists:proplist()) -> {ok, describe_services_response(), tuple()} | {error, any()} | {error, describe_services_errors(), tuple()}. describe_services(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeServices">>, Input, Options). %% @doc Describes a task definition. %% %% You can specify a `family' and `revision' to find information %% about a specific task definition, or you can simply specify the family to %% find the latest `ACTIVE' revision in that family. %% %% You can only describe `INACTIVE' task definitions while an active task %% or service references them. -spec describe_task_definition(aws_client:aws_client(), describe_task_definition_request()) -> {ok, describe_task_definition_response(), tuple()} | {error, any()} | {error, describe_task_definition_errors(), tuple()}. describe_task_definition(Client, Input) when is_map(Client), is_map(Input) -> describe_task_definition(Client, Input, []). -spec describe_task_definition(aws_client:aws_client(), describe_task_definition_request(), proplists:proplist()) -> {ok, describe_task_definition_response(), tuple()} | {error, any()} | {error, describe_task_definition_errors(), tuple()}. describe_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeTaskDefinition">>, Input, Options). %% @doc Describes the task sets in the specified cluster and service. %% %% This is used when a service uses the `EXTERNAL' deployment controller %% type. For more information, see Amazon ECS Deployment Types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. -spec describe_task_sets(aws_client:aws_client(), describe_task_sets_request()) -> {ok, describe_task_sets_response(), tuple()} | {error, any()} | {error, describe_task_sets_errors(), tuple()}. describe_task_sets(Client, Input) when is_map(Client), is_map(Input) -> describe_task_sets(Client, Input, []). -spec describe_task_sets(aws_client:aws_client(), describe_task_sets_request(), proplists:proplist()) -> {ok, describe_task_sets_response(), tuple()} | {error, any()} | {error, describe_task_sets_errors(), tuple()}. describe_task_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeTaskSets">>, Input, Options). %% @doc Describes a specified task or tasks. %% %% Currently, stopped tasks appear in the returned results for at least one %% hour. %% %% If you have tasks with tags, and then delete the cluster, the tagged tasks %% are returned in the response. If you create a new cluster with the same %% name as the deleted cluster, the tagged tasks are not included in the %% response. -spec describe_tasks(aws_client:aws_client(), describe_tasks_request()) -> {ok, describe_tasks_response(), tuple()} | {error, any()} | {error, describe_tasks_errors(), tuple()}. describe_tasks(Client, Input) when is_map(Client), is_map(Input) -> describe_tasks(Client, Input, []). -spec describe_tasks(aws_client:aws_client(), describe_tasks_request(), proplists:proplist()) -> {ok, describe_tasks_response(), tuple()} | {error, any()} | {error, describe_tasks_errors(), tuple()}. describe_tasks(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DescribeTasks">>, Input, Options). %% @doc This action is only used by the Amazon ECS agent, and it is not %% intended for use outside of the agent. %% %% Returns an endpoint for the Amazon ECS agent to poll for updates. -spec discover_poll_endpoint(aws_client:aws_client(), discover_poll_endpoint_request()) -> {ok, discover_poll_endpoint_response(), tuple()} | {error, any()} | {error, discover_poll_endpoint_errors(), tuple()}. discover_poll_endpoint(Client, Input) when is_map(Client), is_map(Input) -> discover_poll_endpoint(Client, Input, []). -spec discover_poll_endpoint(aws_client:aws_client(), discover_poll_endpoint_request(), proplists:proplist()) -> {ok, discover_poll_endpoint_response(), tuple()} | {error, any()} | {error, discover_poll_endpoint_errors(), tuple()}. discover_poll_endpoint(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DiscoverPollEndpoint">>, Input, Options). %% @doc Runs a command remotely on a container within a task. %% %% If you use a condition key in your IAM policy to refine the conditions for %% the policy statement, for example limit the actions to a specific cluster, %% you receive an `AccessDeniedException' when there is a mismatch %% between the condition key value and the corresponding parameter value. %% %% For information about required permissions and considerations, see Using %% Amazon ECS Exec for debugging: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html %% in the Amazon ECS Developer Guide. -spec execute_command(aws_client:aws_client(), execute_command_request()) -> {ok, execute_command_response(), tuple()} | {error, any()} | {error, execute_command_errors(), tuple()}. execute_command(Client, Input) when is_map(Client), is_map(Input) -> execute_command(Client, Input, []). -spec execute_command(aws_client:aws_client(), execute_command_request(), proplists:proplist()) -> {ok, execute_command_response(), tuple()} | {error, any()} | {error, execute_command_errors(), tuple()}. execute_command(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ExecuteCommand">>, Input, Options). %% @doc Retrieves the protection status of tasks in an Amazon ECS service. -spec get_task_protection(aws_client:aws_client(), get_task_protection_request()) -> {ok, get_task_protection_response(), tuple()} | {error, any()} | {error, get_task_protection_errors(), tuple()}. get_task_protection(Client, Input) when is_map(Client), is_map(Input) -> get_task_protection(Client, Input, []). -spec get_task_protection(aws_client:aws_client(), get_task_protection_request(), proplists:proplist()) -> {ok, get_task_protection_response(), tuple()} | {error, any()} | {error, get_task_protection_errors(), tuple()}. get_task_protection(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetTaskProtection">>, Input, Options). %% @doc Lists the account settings for a specified principal. -spec list_account_settings(aws_client:aws_client(), list_account_settings_request()) -> {ok, list_account_settings_response(), tuple()} | {error, any()} | {error, list_account_settings_errors(), tuple()}. list_account_settings(Client, Input) when is_map(Client), is_map(Input) -> list_account_settings(Client, Input, []). -spec list_account_settings(aws_client:aws_client(), list_account_settings_request(), proplists:proplist()) -> {ok, list_account_settings_response(), tuple()} | {error, any()} | {error, list_account_settings_errors(), tuple()}. list_account_settings(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListAccountSettings">>, Input, Options). %% @doc Lists the attributes for Amazon ECS resources within a specified %% target type and cluster. %% %% When you specify a target type and cluster, `ListAttributes' returns a %% list of attribute objects, one for each attribute on each resource. You %% can filter the list of results to a single attribute name to only return %% results that have that name. You can also filter the results by attribute %% name and value. You can do this, for example, to see which container %% instances in a cluster are running a Linux AMI (`ecs.os-type=linux'). -spec list_attributes(aws_client:aws_client(), list_attributes_request()) -> {ok, list_attributes_response(), tuple()} | {error, any()} | {error, list_attributes_errors(), tuple()}. list_attributes(Client, Input) when is_map(Client), is_map(Input) -> list_attributes(Client, Input, []). -spec list_attributes(aws_client:aws_client(), list_attributes_request(), proplists:proplist()) -> {ok, list_attributes_response(), tuple()} | {error, any()} | {error, list_attributes_errors(), tuple()}. list_attributes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListAttributes">>, Input, Options). %% @doc Returns a list of existing clusters. -spec list_clusters(aws_client:aws_client(), list_clusters_request()) -> {ok, list_clusters_response(), tuple()} | {error, any()} | {error, list_clusters_errors(), tuple()}. list_clusters(Client, Input) when is_map(Client), is_map(Input) -> list_clusters(Client, Input, []). -spec list_clusters(aws_client:aws_client(), list_clusters_request(), proplists:proplist()) -> {ok, list_clusters_response(), tuple()} | {error, any()} | {error, list_clusters_errors(), tuple()}. list_clusters(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListClusters">>, Input, Options). %% @doc Returns a list of container instances in a specified cluster. %% %% You can filter the results of a `ListContainerInstances' operation %% with cluster query language statements inside the `filter' parameter. %% For more information, see Cluster Query Language: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html %% in the Amazon Elastic Container Service Developer Guide. -spec list_container_instances(aws_client:aws_client(), list_container_instances_request()) -> {ok, list_container_instances_response(), tuple()} | {error, any()} | {error, list_container_instances_errors(), tuple()}. list_container_instances(Client, Input) when is_map(Client), is_map(Input) -> list_container_instances(Client, Input, []). -spec list_container_instances(aws_client:aws_client(), list_container_instances_request(), proplists:proplist()) -> {ok, list_container_instances_response(), tuple()} | {error, any()} | {error, list_container_instances_errors(), tuple()}. list_container_instances(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListContainerInstances">>, Input, Options). %% @doc Returns a list of daemon deployments for a specified daemon. %% %% You can filter the results by status or creation time. -spec list_daemon_deployments(aws_client:aws_client(), list_daemon_deployments_request()) -> {ok, list_daemon_deployments_response(), tuple()} | {error, any()} | {error, list_daemon_deployments_errors(), tuple()}. list_daemon_deployments(Client, Input) when is_map(Client), is_map(Input) -> list_daemon_deployments(Client, Input, []). -spec list_daemon_deployments(aws_client:aws_client(), list_daemon_deployments_request(), proplists:proplist()) -> {ok, list_daemon_deployments_response(), tuple()} | {error, any()} | {error, list_daemon_deployments_errors(), tuple()}. list_daemon_deployments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListDaemonDeployments">>, Input, Options). %% @doc Returns a list of daemon task definitions that are registered to your %% account. %% %% You can filter the results by family name, status, or both to find daemon %% task definitions that match your criteria. -spec list_daemon_task_definitions(aws_client:aws_client(), list_daemon_task_definitions_request()) -> {ok, list_daemon_task_definitions_response(), tuple()} | {error, any()} | {error, list_daemon_task_definitions_errors(), tuple()}. list_daemon_task_definitions(Client, Input) when is_map(Client), is_map(Input) -> list_daemon_task_definitions(Client, Input, []). -spec list_daemon_task_definitions(aws_client:aws_client(), list_daemon_task_definitions_request(), proplists:proplist()) -> {ok, list_daemon_task_definitions_response(), tuple()} | {error, any()} | {error, list_daemon_task_definitions_errors(), tuple()}. list_daemon_task_definitions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListDaemonTaskDefinitions">>, Input, Options). %% @doc Returns a list of daemons. %% %% You can filter the results by cluster or capacity provider. -spec list_daemons(aws_client:aws_client(), list_daemons_request()) -> {ok, list_daemons_response(), tuple()} | {error, any()} | {error, list_daemons_errors(), tuple()}. list_daemons(Client, Input) when is_map(Client), is_map(Input) -> list_daemons(Client, Input, []). -spec list_daemons(aws_client:aws_client(), list_daemons_request(), proplists:proplist()) -> {ok, list_daemons_response(), tuple()} | {error, any()} | {error, list_daemons_errors(), tuple()}. list_daemons(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListDaemons">>, Input, Options). %% @doc This operation lists all the service deployments that meet the %% specified filter criteria. %% %% A service deployment happens when you release a software update for the %% service. You route traffic from the running service revisions to the new %% service revison and control the number of running tasks. %% %% This API returns the values that you use for the request parameters in %% DescribeServiceRevisions: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceRevisions.html. -spec list_service_deployments(aws_client:aws_client(), list_service_deployments_request()) -> {ok, list_service_deployments_response(), tuple()} | {error, any()} | {error, list_service_deployments_errors(), tuple()}. list_service_deployments(Client, Input) when is_map(Client), is_map(Input) -> list_service_deployments(Client, Input, []). -spec list_service_deployments(aws_client:aws_client(), list_service_deployments_request(), proplists:proplist()) -> {ok, list_service_deployments_response(), tuple()} | {error, any()} | {error, list_service_deployments_errors(), tuple()}. list_service_deployments(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListServiceDeployments">>, Input, Options). %% @doc Returns a list of services. %% %% You can filter the results by cluster, launch type, and scheduling %% strategy. -spec list_services(aws_client:aws_client(), list_services_request()) -> {ok, list_services_response(), tuple()} | {error, any()} | {error, list_services_errors(), tuple()}. list_services(Client, Input) when is_map(Client), is_map(Input) -> list_services(Client, Input, []). -spec list_services(aws_client:aws_client(), list_services_request(), proplists:proplist()) -> {ok, list_services_response(), tuple()} | {error, any()} | {error, list_services_errors(), tuple()}. list_services(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListServices">>, Input, Options). %% @doc This operation lists all of the services that are associated with a %% Cloud Map namespace. %% %% This list might include services in different clusters. In contrast, %% `ListServices' can only list services in one cluster at a time. If you %% need to filter the list of services in a single cluster by various %% parameters, use `ListServices'. For more information, see Service %% Connect: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html %% in the Amazon Elastic Container Service Developer Guide. -spec list_services_by_namespace(aws_client:aws_client(), list_services_by_namespace_request()) -> {ok, list_services_by_namespace_response(), tuple()} | {error, any()} | {error, list_services_by_namespace_errors(), tuple()}. list_services_by_namespace(Client, Input) when is_map(Client), is_map(Input) -> list_services_by_namespace(Client, Input, []). -spec list_services_by_namespace(aws_client:aws_client(), list_services_by_namespace_request(), proplists:proplist()) -> {ok, list_services_by_namespace_response(), tuple()} | {error, any()} | {error, list_services_by_namespace_errors(), tuple()}. list_services_by_namespace(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListServicesByNamespace">>, Input, Options). %% @doc List the tags for an Amazon ECS resource. -spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_request()) -> {ok, list_tags_for_resource_response(), tuple()} | {error, any()} | {error, list_tags_for_resource_errors(), tuple()}. list_tags_for_resource(Client, Input) when is_map(Client), is_map(Input) -> list_tags_for_resource(Client, Input, []). -spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_request(), proplists:proplist()) -> {ok, list_tags_for_resource_response(), tuple()} | {error, any()} | {error, list_tags_for_resource_errors(), tuple()}. list_tags_for_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTagsForResource">>, Input, Options). %% @doc Returns a list of task definition families that are registered to %% your account. %% %% This list includes task definition families that no longer have any %% `ACTIVE' task definition revisions. %% %% You can filter out task definition families that don't contain any %% `ACTIVE' task definition revisions by setting the `status' %% parameter to `ACTIVE'. You can also filter the results with the %% `familyPrefix' parameter. -spec list_task_definition_families(aws_client:aws_client(), list_task_definition_families_request()) -> {ok, list_task_definition_families_response(), tuple()} | {error, any()} | {error, list_task_definition_families_errors(), tuple()}. list_task_definition_families(Client, Input) when is_map(Client), is_map(Input) -> list_task_definition_families(Client, Input, []). -spec list_task_definition_families(aws_client:aws_client(), list_task_definition_families_request(), proplists:proplist()) -> {ok, list_task_definition_families_response(), tuple()} | {error, any()} | {error, list_task_definition_families_errors(), tuple()}. list_task_definition_families(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTaskDefinitionFamilies">>, Input, Options). %% @doc Returns a list of task definitions that are registered to your %% account. %% %% You can filter the results by family name with the `familyPrefix' %% parameter or by status with the `status' parameter. -spec list_task_definitions(aws_client:aws_client(), list_task_definitions_request()) -> {ok, list_task_definitions_response(), tuple()} | {error, any()} | {error, list_task_definitions_errors(), tuple()}. list_task_definitions(Client, Input) when is_map(Client), is_map(Input) -> list_task_definitions(Client, Input, []). -spec list_task_definitions(aws_client:aws_client(), list_task_definitions_request(), proplists:proplist()) -> {ok, list_task_definitions_response(), tuple()} | {error, any()} | {error, list_task_definitions_errors(), tuple()}. list_task_definitions(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTaskDefinitions">>, Input, Options). %% @doc Returns a list of tasks. %% %% You can filter the results by cluster, task definition family, container %% instance, launch type, what IAM principal started the task, or by the %% desired status of the task. %% %% Recently stopped tasks might appear in the returned results. -spec list_tasks(aws_client:aws_client(), list_tasks_request()) -> {ok, list_tasks_response(), tuple()} | {error, any()} | {error, list_tasks_errors(), tuple()}. list_tasks(Client, Input) when is_map(Client), is_map(Input) -> list_tasks(Client, Input, []). -spec list_tasks(aws_client:aws_client(), list_tasks_request(), proplists:proplist()) -> {ok, list_tasks_response(), tuple()} | {error, any()} | {error, list_tasks_errors(), tuple()}. list_tasks(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTasks">>, Input, Options). %% @doc Modifies an account setting. %% %% Account settings are set on a per-Region basis. %% %% If you change the root user account setting, the default settings are %% reset for users and roles that do not have specified individual account %% settings. For more information, see Account Settings: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html %% in the Amazon Elastic Container Service Developer Guide. -spec put_account_setting(aws_client:aws_client(), put_account_setting_request()) -> {ok, put_account_setting_response(), tuple()} | {error, any()} | {error, put_account_setting_errors(), tuple()}. put_account_setting(Client, Input) when is_map(Client), is_map(Input) -> put_account_setting(Client, Input, []). -spec put_account_setting(aws_client:aws_client(), put_account_setting_request(), proplists:proplist()) -> {ok, put_account_setting_response(), tuple()} | {error, any()} | {error, put_account_setting_errors(), tuple()}. put_account_setting(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutAccountSetting">>, Input, Options). %% @doc Modifies an account setting for all users on an account for whom no %% individual account setting has been specified. %% %% Account settings are set on a per-Region basis. -spec put_account_setting_default(aws_client:aws_client(), put_account_setting_default_request()) -> {ok, put_account_setting_default_response(), tuple()} | {error, any()} | {error, put_account_setting_default_errors(), tuple()}. put_account_setting_default(Client, Input) when is_map(Client), is_map(Input) -> put_account_setting_default(Client, Input, []). -spec put_account_setting_default(aws_client:aws_client(), put_account_setting_default_request(), proplists:proplist()) -> {ok, put_account_setting_default_response(), tuple()} | {error, any()} | {error, put_account_setting_default_errors(), tuple()}. put_account_setting_default(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutAccountSettingDefault">>, Input, Options). %% @doc Create or update an attribute on an Amazon ECS resource. %% %% If the attribute doesn't exist, it's created. If the attribute %% exists, its value is replaced with the specified value. To delete an %% attribute, use DeleteAttributes: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html. %% For more information, see Attributes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes %% in the Amazon Elastic Container Service Developer Guide. -spec put_attributes(aws_client:aws_client(), put_attributes_request()) -> {ok, put_attributes_response(), tuple()} | {error, any()} | {error, put_attributes_errors(), tuple()}. put_attributes(Client, Input) when is_map(Client), is_map(Input) -> put_attributes(Client, Input, []). -spec put_attributes(aws_client:aws_client(), put_attributes_request(), proplists:proplist()) -> {ok, put_attributes_response(), tuple()} | {error, any()} | {error, put_attributes_errors(), tuple()}. put_attributes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutAttributes">>, Input, Options). %% @doc Modifies the available capacity providers and the default capacity %% provider strategy for a cluster. %% %% You must specify both the available capacity providers and a default %% capacity provider strategy for the cluster. If the specified cluster has %% existing capacity providers associated with it, you must specify all %% existing capacity providers in addition to any new ones you want to add. %% Any existing capacity providers that are associated with a cluster that %% are omitted from a PutClusterCapacityProviders: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html %% API call will be disassociated with the cluster. You can only disassociate %% an existing capacity provider from a cluster if it's not being used by %% any existing tasks. %% %% When creating a service or running a task on a cluster, if no capacity %% provider or launch type is specified, then the cluster's default %% capacity provider strategy is used. We recommend that you define a default %% capacity provider strategy for your cluster. However, you must specify an %% empty array (`[]') to bypass defining a default strategy. %% %% Amazon ECS Managed Instances doesn't support this, because when you %% create a capacity provider with Amazon ECS Managed Instances, it becomes %% available only within the specified cluster. -spec put_cluster_capacity_providers(aws_client:aws_client(), put_cluster_capacity_providers_request()) -> {ok, put_cluster_capacity_providers_response(), tuple()} | {error, any()} | {error, put_cluster_capacity_providers_errors(), tuple()}. put_cluster_capacity_providers(Client, Input) when is_map(Client), is_map(Input) -> put_cluster_capacity_providers(Client, Input, []). -spec put_cluster_capacity_providers(aws_client:aws_client(), put_cluster_capacity_providers_request(), proplists:proplist()) -> {ok, put_cluster_capacity_providers_response(), tuple()} | {error, any()} | {error, put_cluster_capacity_providers_errors(), tuple()}. put_cluster_capacity_providers(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutClusterCapacityProviders">>, Input, Options). %% @doc This action is only used by the Amazon ECS agent, and it is not %% intended for use outside of the agent. %% %% Registers an EC2 instance into the specified cluster. This instance %% becomes available to place containers on. -spec register_container_instance(aws_client:aws_client(), register_container_instance_request()) -> {ok, register_container_instance_response(), tuple()} | {error, any()} | {error, register_container_instance_errors(), tuple()}. register_container_instance(Client, Input) when is_map(Client), is_map(Input) -> register_container_instance(Client, Input, []). -spec register_container_instance(aws_client:aws_client(), register_container_instance_request(), proplists:proplist()) -> {ok, register_container_instance_response(), tuple()} | {error, any()} | {error, register_container_instance_errors(), tuple()}. register_container_instance(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RegisterContainerInstance">>, Input, Options). %% @doc Registers a new daemon task definition from the supplied `family' %% and `containerDefinitions'. %% %% Optionally, you can add data volumes to your containers with the %% `volumes' parameter. For more information, see Daemon task %% definitions: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-task-definitions.html %% in the Amazon Elastic Container Service Developer Guide. %% %% A daemon task definition is a template that describes the containers that %% form a daemon. Daemons deploy cross-cutting software agents such as %% security monitoring, telemetry, and logging across your Amazon ECS %% infrastructure. %% %% Each time you call `RegisterDaemonTaskDefinition', a new revision of %% the daemon task definition is created. You can't modify a revision %% after you register it. -spec register_daemon_task_definition(aws_client:aws_client(), register_daemon_task_definition_request()) -> {ok, register_daemon_task_definition_response(), tuple()} | {error, any()} | {error, register_daemon_task_definition_errors(), tuple()}. register_daemon_task_definition(Client, Input) when is_map(Client), is_map(Input) -> register_daemon_task_definition(Client, Input, []). -spec register_daemon_task_definition(aws_client:aws_client(), register_daemon_task_definition_request(), proplists:proplist()) -> {ok, register_daemon_task_definition_response(), tuple()} | {error, any()} | {error, register_daemon_task_definition_errors(), tuple()}. register_daemon_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RegisterDaemonTaskDefinition">>, Input, Options). %% @doc Registers a new task definition from the supplied `family' and %% `containerDefinitions'. %% %% Optionally, you can add data volumes to your containers with the %% `volumes' parameter. For more information about task definition %% parameters and defaults, see Amazon ECS Task Definitions: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html %% in the Amazon Elastic Container Service Developer Guide. %% %% You can specify a role for your task with the `taskRoleArn' parameter. %% When you specify a role for a task, its containers can then use the latest %% versions of the CLI or SDKs to make API requests to the Amazon Web %% Services services that are specified in the policy that's associated %% with the role. For more information, see IAM Roles for Tasks: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html %% in the Amazon Elastic Container Service Developer Guide. %% %% You can specify a Docker networking mode for the containers in your task %% definition with the `networkMode' parameter. If you specify the %% `awsvpc' network mode, the task is allocated an elastic network %% interface, and you must specify a NetworkConfiguration: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_NetworkConfiguration.html %% when you create a service or run a task with the task definition. For more %% information, see Task Networking: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html %% in the Amazon Elastic Container Service Developer Guide. -spec register_task_definition(aws_client:aws_client(), register_task_definition_request()) -> {ok, register_task_definition_response(), tuple()} | {error, any()} | {error, register_task_definition_errors(), tuple()}. register_task_definition(Client, Input) when is_map(Client), is_map(Input) -> register_task_definition(Client, Input, []). -spec register_task_definition(aws_client:aws_client(), register_task_definition_request(), proplists:proplist()) -> {ok, register_task_definition_response(), tuple()} | {error, any()} | {error, register_task_definition_errors(), tuple()}. register_task_definition(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RegisterTaskDefinition">>, Input, Options). %% @doc Starts a new task using the specified task definition. %% %% On March 21, 2024, a change was made to resolve the task definition %% revision before authorization. When a task definition revision is not %% specified, authorization will occur using the latest revision of a task %% definition. %% %% Amazon Elastic Inference (EI) is no longer available to customers. %% %% You can allow Amazon ECS to place tasks for you, or you can customize how %% Amazon ECS places tasks using placement constraints and placement %% strategies. For more information, see Scheduling Tasks: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html %% in the Amazon Elastic Container Service Developer Guide. %% %% Alternatively, you can use `StartTask' to use your own scheduler or %% place tasks manually on specific container instances. %% %% You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the %% volume when creating or updating a service. For more information, see %% Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. %% %% The Amazon ECS API follows an eventual consistency model. This is because %% of the distributed nature of the system supporting the API. This means %% that the result of an API command you run that affects your Amazon ECS %% resources might not be immediately visible to all subsequent commands you %% run. Keep this in mind when you carry out an API command that immediately %% follows a previous API command. %% %% To manage eventual consistency, you can do the following: %% %% Confirm the state of the resource before you run a command to modify it. %% Run the DescribeTasks command using an exponential backoff algorithm to %% ensure that you allow enough time for the previous command to propagate %% through the system. To do this, run the DescribeTasks command repeatedly, %% starting with a couple of seconds of wait time and increasing gradually up %% to five minutes of wait time. %% %% Add wait time between subsequent commands, even if the DescribeTasks %% command returns an accurate response. Apply an exponential backoff %% algorithm starting with a couple of seconds of wait time, and increase %% gradually up to about five minutes of wait time. %% %% If you get a `ConflictException' error, the `RunTask' request %% could not be processed due to conflicts. The provided `clientToken' is %% already in use with a different `RunTask' request. The %% `resourceIds' are the existing task ARNs which are already associated %% with the `clientToken'. %% %% To fix this issue: %% %% Run `RunTask' with a unique `clientToken'. %% %% Run `RunTask' with the `clientToken' and the original set of %% parameters %% %% If you get a `ClientException'error, the `RunTask' could not be %% processed because you use managed scaling and there is a capacity error %% because the quota of tasks in the `PROVISIONING' per cluster has been %% reached. For information about the service quotas, see Amazon ECS service %% quotas: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html. -spec run_task(aws_client:aws_client(), run_task_request()) -> {ok, run_task_response(), tuple()} | {error, any()} | {error, run_task_errors(), tuple()}. run_task(Client, Input) when is_map(Client), is_map(Input) -> run_task(Client, Input, []). -spec run_task(aws_client:aws_client(), run_task_request(), proplists:proplist()) -> {ok, run_task_response(), tuple()} | {error, any()} | {error, run_task_errors(), tuple()}. run_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"RunTask">>, Input, Options). %% @doc Starts a new task from the specified task definition on the specified %% container instance or instances. %% %% On March 21, 2024, a change was made to resolve the task definition %% revision before authorization. When a task definition revision is not %% specified, authorization will occur using the latest revision of a task %% definition. %% %% Amazon Elastic Inference (EI) is no longer available to customers. %% %% Alternatively, you can use`RunTask' to place tasks for you. For more %% information, see Scheduling Tasks: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html %% in the Amazon Elastic Container Service Developer Guide. %% %% You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the %% volume when creating or updating a service. For more information, see %% Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. -spec start_task(aws_client:aws_client(), start_task_request()) -> {ok, start_task_response(), tuple()} | {error, any()} | {error, start_task_errors(), tuple()}. start_task(Client, Input) when is_map(Client), is_map(Input) -> start_task(Client, Input, []). -spec start_task(aws_client:aws_client(), start_task_request(), proplists:proplist()) -> {ok, start_task_response(), tuple()} | {error, any()} | {error, start_task_errors(), tuple()}. start_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StartTask">>, Input, Options). %% @doc Stops an ongoing service deployment. %% %% The following stop types are avaiable: %% %% ROLLBACK - This option rolls back the service deployment to the previous %% service revision. %% %% You can use this option even if you didn't configure the service %% deployment for the rollback option. %% %% For more information, see Stopping Amazon ECS service deployments: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/stop-service-deployment.html %% in the Amazon Elastic Container Service Developer Guide. -spec stop_service_deployment(aws_client:aws_client(), stop_service_deployment_request()) -> {ok, stop_service_deployment_response(), tuple()} | {error, any()} | {error, stop_service_deployment_errors(), tuple()}. stop_service_deployment(Client, Input) when is_map(Client), is_map(Input) -> stop_service_deployment(Client, Input, []). -spec stop_service_deployment(aws_client:aws_client(), stop_service_deployment_request(), proplists:proplist()) -> {ok, stop_service_deployment_response(), tuple()} | {error, any()} | {error, stop_service_deployment_errors(), tuple()}. stop_service_deployment(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StopServiceDeployment">>, Input, Options). %% @doc Stops a running task. %% %% Any tags associated with the task will be deleted. %% %% When you call `StopTask' on a task, the equivalent of `docker %% stop' is issued to the containers running in the task. This results in %% a stop signal value and a default 30-second timeout, after which the %% `SIGKILL' value is sent and the containers are forcibly stopped. This %% signal can be defined in your container image with the `STOPSIGNAL' %% instruction and will default to `SIGTERM'. If the container handles %% the `SIGTERM' value gracefully and exits within 30 seconds from %% receiving it, no `SIGKILL' value is sent. %% %% For Windows containers, POSIX signals do not work and runtime stops the %% container by sending a `CTRL_SHUTDOWN_EVENT'. For more information, %% see Unable to react to graceful shutdown of (Windows) container #25982: %% https://github.com/moby/moby/issues/25982 on GitHub. %% %% The default 30-second timeout can be configured on the Amazon ECS %% container agent with the `ECS_CONTAINER_STOP_TIMEOUT' variable. For %% more information, see Amazon ECS Container Agent Configuration: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html %% in the Amazon Elastic Container Service Developer Guide. -spec stop_task(aws_client:aws_client(), stop_task_request()) -> {ok, stop_task_response(), tuple()} | {error, any()} | {error, stop_task_errors(), tuple()}. stop_task(Client, Input) when is_map(Client), is_map(Input) -> stop_task(Client, Input, []). -spec stop_task(aws_client:aws_client(), stop_task_request(), proplists:proplist()) -> {ok, stop_task_response(), tuple()} | {error, any()} | {error, stop_task_errors(), tuple()}. stop_task(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"StopTask">>, Input, Options). %% @doc This action is only used by the Amazon ECS agent, and it is not %% intended for use outside of the agent. %% %% Sent to acknowledge that an attachment changed states. -spec submit_attachment_state_changes(aws_client:aws_client(), submit_attachment_state_changes_request()) -> {ok, submit_attachment_state_changes_response(), tuple()} | {error, any()} | {error, submit_attachment_state_changes_errors(), tuple()}. submit_attachment_state_changes(Client, Input) when is_map(Client), is_map(Input) -> submit_attachment_state_changes(Client, Input, []). -spec submit_attachment_state_changes(aws_client:aws_client(), submit_attachment_state_changes_request(), proplists:proplist()) -> {ok, submit_attachment_state_changes_response(), tuple()} | {error, any()} | {error, submit_attachment_state_changes_errors(), tuple()}. submit_attachment_state_changes(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"SubmitAttachmentStateChanges">>, Input, Options). %% @doc This action is only used by the Amazon ECS agent, and it is not %% intended for use outside of the agent. %% %% Sent to acknowledge that a container changed states. -spec submit_container_state_change(aws_client:aws_client(), submit_container_state_change_request()) -> {ok, submit_container_state_change_response(), tuple()} | {error, any()} | {error, submit_container_state_change_errors(), tuple()}. submit_container_state_change(Client, Input) when is_map(Client), is_map(Input) -> submit_container_state_change(Client, Input, []). -spec submit_container_state_change(aws_client:aws_client(), submit_container_state_change_request(), proplists:proplist()) -> {ok, submit_container_state_change_response(), tuple()} | {error, any()} | {error, submit_container_state_change_errors(), tuple()}. submit_container_state_change(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"SubmitContainerStateChange">>, Input, Options). %% @doc This action is only used by the Amazon ECS agent, and it is not %% intended for use outside of the agent. %% %% Sent to acknowledge that a task changed states. -spec submit_task_state_change(aws_client:aws_client(), submit_task_state_change_request()) -> {ok, submit_task_state_change_response(), tuple()} | {error, any()} | {error, submit_task_state_change_errors(), tuple()}. submit_task_state_change(Client, Input) when is_map(Client), is_map(Input) -> submit_task_state_change(Client, Input, []). -spec submit_task_state_change(aws_client:aws_client(), submit_task_state_change_request(), proplists:proplist()) -> {ok, submit_task_state_change_response(), tuple()} | {error, any()} | {error, submit_task_state_change_errors(), tuple()}. submit_task_state_change(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"SubmitTaskStateChange">>, Input, Options). %% @doc Associates the specified tags to a resource with the specified %% `resourceArn'. %% %% If existing tags on a resource aren't specified in the request %% parameters, they aren't changed. When a resource is deleted, the tags %% that are associated with that resource are deleted as well. -spec tag_resource(aws_client:aws_client(), tag_resource_request()) -> {ok, tag_resource_response(), tuple()} | {error, any()} | {error, tag_resource_errors(), tuple()}. tag_resource(Client, Input) when is_map(Client), is_map(Input) -> tag_resource(Client, Input, []). -spec tag_resource(aws_client:aws_client(), tag_resource_request(), proplists:proplist()) -> {ok, tag_resource_response(), tuple()} | {error, any()} | {error, tag_resource_errors(), tuple()}. tag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"TagResource">>, Input, Options). %% @doc Deletes specified tags from a resource. -spec untag_resource(aws_client:aws_client(), untag_resource_request()) -> {ok, untag_resource_response(), tuple()} | {error, any()} | {error, untag_resource_errors(), tuple()}. untag_resource(Client, Input) when is_map(Client), is_map(Input) -> untag_resource(Client, Input, []). -spec untag_resource(aws_client:aws_client(), untag_resource_request(), proplists:proplist()) -> {ok, untag_resource_response(), tuple()} | {error, any()} | {error, untag_resource_errors(), tuple()}. untag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UntagResource">>, Input, Options). %% @doc Modifies the parameters for a capacity provider. %% %% These changes only apply to new Amazon ECS Managed Instances, or EC2 %% instances, not existing ones. -spec update_capacity_provider(aws_client:aws_client(), update_capacity_provider_request()) -> {ok, update_capacity_provider_response(), tuple()} | {error, any()} | {error, update_capacity_provider_errors(), tuple()}. update_capacity_provider(Client, Input) when is_map(Client), is_map(Input) -> update_capacity_provider(Client, Input, []). -spec update_capacity_provider(aws_client:aws_client(), update_capacity_provider_request(), proplists:proplist()) -> {ok, update_capacity_provider_response(), tuple()} | {error, any()} | {error, update_capacity_provider_errors(), tuple()}. update_capacity_provider(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateCapacityProvider">>, Input, Options). %% @doc Updates the cluster. -spec update_cluster(aws_client:aws_client(), update_cluster_request()) -> {ok, update_cluster_response(), tuple()} | {error, any()} | {error, update_cluster_errors(), tuple()}. update_cluster(Client, Input) when is_map(Client), is_map(Input) -> update_cluster(Client, Input, []). -spec update_cluster(aws_client:aws_client(), update_cluster_request(), proplists:proplist()) -> {ok, update_cluster_response(), tuple()} | {error, any()} | {error, update_cluster_errors(), tuple()}. update_cluster(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateCluster">>, Input, Options). %% @doc Modifies the settings to use for a cluster. -spec update_cluster_settings(aws_client:aws_client(), update_cluster_settings_request()) -> {ok, update_cluster_settings_response(), tuple()} | {error, any()} | {error, update_cluster_settings_errors(), tuple()}. update_cluster_settings(Client, Input) when is_map(Client), is_map(Input) -> update_cluster_settings(Client, Input, []). -spec update_cluster_settings(aws_client:aws_client(), update_cluster_settings_request(), proplists:proplist()) -> {ok, update_cluster_settings_response(), tuple()} | {error, any()} | {error, update_cluster_settings_errors(), tuple()}. update_cluster_settings(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateClusterSettings">>, Input, Options). %% @doc Updates the Amazon ECS container agent on a specified container %% instance. %% %% Updating the Amazon ECS container agent doesn't interrupt running %% tasks or services on the container instance. The process for updating the %% agent differs depending on whether your container instance was launched %% with the Amazon ECS-optimized AMI or another operating system. %% %% The `UpdateContainerAgent' API isn't supported for container %% instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To %% update the container agent, you can update the `ecs-init' package. %% This updates the agent. For more information, see Updating the Amazon ECS %% container agent: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/agent-update-ecs-ami.html %% in the Amazon Elastic Container Service Developer Guide. %% %% Agent updates with the `UpdateContainerAgent' API operation do not %% apply to Windows container instances. We recommend that you launch new %% container instances to update the agent version in your Windows clusters. %% %% The `UpdateContainerAgent' API requires an Amazon ECS-optimized AMI or %% Amazon Linux AMI with the `ecs-init' service installed and running. %% For help updating the Amazon ECS container agent on other operating %% systems, see Manually updating the Amazon ECS container agent: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html#manually_update_agent %% in the Amazon Elastic Container Service Developer Guide. -spec update_container_agent(aws_client:aws_client(), update_container_agent_request()) -> {ok, update_container_agent_response(), tuple()} | {error, any()} | {error, update_container_agent_errors(), tuple()}. update_container_agent(Client, Input) when is_map(Client), is_map(Input) -> update_container_agent(Client, Input, []). -spec update_container_agent(aws_client:aws_client(), update_container_agent_request(), proplists:proplist()) -> {ok, update_container_agent_response(), tuple()} | {error, any()} | {error, update_container_agent_errors(), tuple()}. update_container_agent(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateContainerAgent">>, Input, Options). %% @doc Modifies the status of an Amazon ECS container instance. %% %% Once a container instance has reached an `ACTIVE' state, you can %% change the status of a container instance to `DRAINING' to manually %% remove an instance from a cluster, for example to perform system updates, %% update the Docker daemon, or scale down the cluster size. %% %% A container instance can't be changed to `DRAINING' until it has %% reached an `ACTIVE' status. If the instance is in any other status, an %% error will be received. %% %% When you set a container instance to `DRAINING', Amazon ECS prevents %% new tasks from being scheduled for placement on the container instance and %% replacement service tasks are started on other container instances in the %% cluster if the resources are available. Service tasks on the container %% instance that are in the `PENDING' state are stopped immediately. %% %% Service tasks on the container instance that are in the `RUNNING' %% state are stopped and replaced according to the service's deployment %% configuration parameters, `minimumHealthyPercent' and %% `maximumPercent'. You can change the deployment configuration of your %% service using UpdateService: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html. %% %% If `minimumHealthyPercent' is below 100%, the scheduler can ignore %% `desiredCount' temporarily during task replacement. For example, %% `desiredCount' is four tasks, a minimum of 50% allows the scheduler to %% stop two existing tasks before starting two new tasks. If the minimum is %% 100%, the service scheduler can't remove existing tasks until the %% replacement tasks are considered healthy. Tasks for services that do not %% use a load balancer are considered healthy if they're in the %% `RUNNING' state. Tasks for services that use a load balancer are %% considered healthy if they're in the `RUNNING' state and are %% reported as healthy by the load balancer. %% %% The `maximumPercent' parameter represents an upper limit on the number %% of running tasks during task replacement. You can use this to define the %% replacement batch size. For example, if `desiredCount' is four tasks, %% a maximum of 200% starts four new tasks before stopping the four tasks to %% be drained, provided that the cluster resources required to do this are %% available. If the maximum is 100%, then replacement tasks can't start %% until the draining tasks have stopped. %% %% Any `PENDING' or `RUNNING' tasks that do not belong to a service %% aren't affected. You must wait for them to finish or stop them %% manually. %% %% A container instance has completed draining when it has no more %% `RUNNING' tasks. You can verify this using ListTasks: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html. %% %% When a container instance has been drained, you can set a container %% instance to `ACTIVE' status and once it has reached that status the %% Amazon ECS scheduler can begin scheduling tasks on the instance again. -spec update_container_instances_state(aws_client:aws_client(), update_container_instances_state_request()) -> {ok, update_container_instances_state_response(), tuple()} | {error, any()} | {error, update_container_instances_state_errors(), tuple()}. update_container_instances_state(Client, Input) when is_map(Client), is_map(Input) -> update_container_instances_state(Client, Input, []). -spec update_container_instances_state(aws_client:aws_client(), update_container_instances_state_request(), proplists:proplist()) -> {ok, update_container_instances_state_response(), tuple()} | {error, any()} | {error, update_container_instances_state_errors(), tuple()}. update_container_instances_state(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateContainerInstancesState">>, Input, Options). %% @doc Updates the specified daemon. %% %% When you update a daemon, a new deployment is triggered that progressively %% rolls out the changes to the container instances associated with the %% daemon's capacity providers. For more information, see Daemon %% deployments: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/daemon-deployments.html %% in the Amazon Elastic Container Service Developer Guide. %% %% Amazon ECS drains existing container instances and provisions new %% instances with the updated daemon. Amazon ECS automatically launches %% replacement tasks for your services. %% %% Updating a daemon triggers a rolling deployment that drains and replaces %% container instances. Plan updates during maintenance windows to minimize %% impact on running services. %% %% ECS Managed Daemons is only supported for Amazon ECS Managed Instances %% Capacity Providers. -spec update_daemon(aws_client:aws_client(), update_daemon_request()) -> {ok, update_daemon_response(), tuple()} | {error, any()} | {error, update_daemon_errors(), tuple()}. update_daemon(Client, Input) when is_map(Client), is_map(Input) -> update_daemon(Client, Input, []). -spec update_daemon(aws_client:aws_client(), update_daemon_request(), proplists:proplist()) -> {ok, update_daemon_response(), tuple()} | {error, any()} | {error, update_daemon_errors(), tuple()}. update_daemon(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateDaemon">>, Input, Options). %% @doc Updates an existing Express service configuration. %% %% Modifies container settings, resource allocation, auto-scaling %% configuration, and other service parameters without recreating the %% service. %% %% Amazon ECS creates a new service revision with updated configuration and %% performs a rolling deployment to replace existing tasks. The service %% remains available during updates, ensuring zero-downtime deployments. %% %% Some parameters like the infrastructure role cannot be modified after %% service creation and require creating a new service. -spec update_express_gateway_service(aws_client:aws_client(), update_express_gateway_service_request()) -> {ok, update_express_gateway_service_response(), tuple()} | {error, any()} | {error, update_express_gateway_service_errors(), tuple()}. update_express_gateway_service(Client, Input) when is_map(Client), is_map(Input) -> update_express_gateway_service(Client, Input, []). -spec update_express_gateway_service(aws_client:aws_client(), update_express_gateway_service_request(), proplists:proplist()) -> {ok, update_express_gateway_service_response(), tuple()} | {error, any()} | {error, update_express_gateway_service_errors(), tuple()}. update_express_gateway_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateExpressGatewayService">>, Input, Options). %% @doc Modifies the parameters of a service. %% %% On March 21, 2024, a change was made to resolve the task definition %% revision before authorization. When a task definition revision is not %% specified, authorization will occur using the latest revision of a task %% definition. %% %% For services using the rolling update (`ECS') you can update the %% desired count, deployment configuration, network configuration, load %% balancers, service registries, enable ECS managed tags option, propagate %% tags option, task placement constraints and strategies, and task %% definition. When you update any of these parameters, Amazon ECS starts new %% tasks with the new configuration. %% %% You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the %% volume when starting or running a task, or when creating or updating a %% service. For more information, see Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. You can update %% your volume configurations and trigger a new deployment. %% `volumeConfigurations' is only supported for REPLICA service and not %% DAEMON service. If you leave `volumeConfigurations' `null', it %% doesn't trigger a new deployment. For more information on volumes, see %% Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. %% %% For services using the blue/green (`CODE_DEPLOY') deployment %% controller, only the desired count, deployment configuration, health check %% grace period, task placement constraints and strategies, enable ECS %% managed tags option, and propagate tags can be updated using this API. If %% the network configuration, platform version, task definition, or load %% balancer need to be updated, create a new CodeDeploy deployment. For more %% information, see CreateDeployment: %% https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html %% in the CodeDeploy API Reference. %% %% For services using an external deployment controller, you can update only %% the desired count, task placement constraints and strategies, health check %% grace period, enable ECS managed tags option, and propagate tags option, %% using this API. If the launch type, load balancer, network configuration, %% platform version, or task definition need to be updated, create a new task %% set For more information, see CreateTaskSet: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html. %% %% You can add to or subtract from the number of instantiations of a task %% definition in a service by specifying the cluster that the service is %% running in and a new `desiredCount' parameter. %% %% You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the %% volume when starting or running a task, or when creating or updating a %% service. For more information, see Amazon EBS volumes: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types %% in the Amazon Elastic Container Service Developer Guide. %% %% If you have updated the container image of your application, you can %% create a new task definition with that image and deploy it to your %% service. The service scheduler uses the minimum healthy percent and %% maximum percent parameters (in the service's deployment configuration) %% to determine the deployment strategy. %% %% If your updated Docker image uses the same tag as what is in the existing %% task definition for your service (for example, `my_image:latest'), you %% don't need to create a new revision of your task definition. You can %% update the service using the `forceNewDeployment' option. The new %% tasks launched by the deployment pull the current image/tag combination %% from your repository when they start. %% %% You can also update the deployment configuration of a service. When a %% deployment is triggered by updating the task definition of a service, the %% service scheduler uses the deployment configuration parameters, %% `minimumHealthyPercent' and `maximumPercent', to determine the %% deployment strategy. %% %% If `minimumHealthyPercent' is below 100%, the scheduler can ignore %% `desiredCount' temporarily during a deployment. For example, if %% `desiredCount' is four tasks, a minimum of 50% allows the scheduler to %% stop two existing tasks before starting two new tasks. Tasks for services %% that don't use a load balancer are considered healthy if they're %% in the `RUNNING' state. Tasks for services that use a load balancer %% are considered healthy if they're in the `RUNNING' state and are %% reported as healthy by the load balancer. %% %% The `maximumPercent' parameter represents an upper limit on the number %% of running tasks during a deployment. You can use it to define the %% deployment batch size. For example, if `desiredCount' is four tasks, a %% maximum of 200% starts four new tasks before stopping the four older tasks %% (provided that the cluster resources required to do this are available). %% %% When UpdateService: %% https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html %% stops a task during a deployment, the equivalent of `docker stop' is %% issued to the containers running in the task. This results in a %% `SIGTERM' and a 30-second timeout. After this, `SIGKILL' is sent %% and the containers are forcibly stopped. If the container handles the %% `SIGTERM' gracefully and exits within 30 seconds from receiving it, no %% `SIGKILL' is sent. %% %% When the service scheduler launches new tasks, it determines task %% placement in your cluster with the following logic. %% %% Determine which of the container instances in your cluster can support %% your service's task definition. For example, they have the required %% CPU, memory, ports, and container instance attributes. %% %% By default, the service scheduler attempts to balance tasks across %% Availability Zones in this manner even though you can choose a different %% placement strategy. %% %% Sort the valid container instances by the fewest number of running tasks %% for this service in the same Availability Zone as the instance. For %% example, if zone A has one running service task and zones B and C each %% have zero, valid container instances in either zone B or C are considered %% optimal for placement. %% %% Place the new service task on a valid container instance in an optimal %% Availability Zone (based on the previous steps), favoring container %% instances with the fewest number of running tasks for this service. %% %% When the service scheduler stops running tasks, it attempts to maintain %% balance across the Availability Zones in your cluster using the following %% logic: %% %% Sort the container instances by the largest number of running tasks for %% this service in the same Availability Zone as the instance. For example, %% if zone A has one running service task and zones B and C each have two, %% container instances in either zone B or C are considered optimal for %% termination. %% %% Stop the task on a container instance in an optimal Availability Zone %% (based on the previous steps), favoring container instances with the %% largest number of running tasks for this service. -spec update_service(aws_client:aws_client(), update_service_request()) -> {ok, update_service_response(), tuple()} | {error, any()} | {error, update_service_errors(), tuple()}. update_service(Client, Input) when is_map(Client), is_map(Input) -> update_service(Client, Input, []). -spec update_service(aws_client:aws_client(), update_service_request(), proplists:proplist()) -> {ok, update_service_response(), tuple()} | {error, any()} | {error, update_service_errors(), tuple()}. update_service(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateService">>, Input, Options). %% @doc Modifies which task set in a service is the primary task set. %% %% Any parameters that are updated on the primary task set in a service will %% transition to the service. This is used when a service uses the %% `EXTERNAL' deployment controller type. For more information, see %% Amazon ECS Deployment Types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. -spec update_service_primary_task_set(aws_client:aws_client(), update_service_primary_task_set_request()) -> {ok, update_service_primary_task_set_response(), tuple()} | {error, any()} | {error, update_service_primary_task_set_errors(), tuple()}. update_service_primary_task_set(Client, Input) when is_map(Client), is_map(Input) -> update_service_primary_task_set(Client, Input, []). -spec update_service_primary_task_set(aws_client:aws_client(), update_service_primary_task_set_request(), proplists:proplist()) -> {ok, update_service_primary_task_set_response(), tuple()} | {error, any()} | {error, update_service_primary_task_set_errors(), tuple()}. update_service_primary_task_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateServicePrimaryTaskSet">>, Input, Options). %% @doc Updates the protection status of a task. %% %% You can set `protectionEnabled' to `true' to protect your task %% from termination during scale-in events from Service Autoscaling: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html %% or deployments: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html. %% %% Task-protection, by default, expires after 2 hours at which point Amazon %% ECS clears the `protectionEnabled' property making the task eligible %% for termination by a subsequent scale-in event. %% %% You can specify a custom expiration period for task protection from 1 %% minute to up to 2,880 minutes (48 hours). To specify the custom expiration %% period, set the `expiresInMinutes' property. The %% `expiresInMinutes' property is always reset when you invoke this %% operation for a task that already has `protectionEnabled' set to %% `true'. You can keep extending the protection expiration period of a %% task by invoking this operation repeatedly. %% %% To learn more about Amazon ECS task protection, see Task scale-in %% protection: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html %% in the Amazon Elastic Container Service Developer Guide . %% %% This operation is only supported for tasks belonging to an Amazon ECS %% service. Invoking this operation for a standalone task will result in an %% `TASK_NOT_VALID' failure. For more information, see API failure %% reasons: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html. %% %% If you prefer to set task protection from within the container, we %% recommend using the Task scale-in protection endpoint: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html. -spec update_task_protection(aws_client:aws_client(), update_task_protection_request()) -> {ok, update_task_protection_response(), tuple()} | {error, any()} | {error, update_task_protection_errors(), tuple()}. update_task_protection(Client, Input) when is_map(Client), is_map(Input) -> update_task_protection(Client, Input, []). -spec update_task_protection(aws_client:aws_client(), update_task_protection_request(), proplists:proplist()) -> {ok, update_task_protection_response(), tuple()} | {error, any()} | {error, update_task_protection_errors(), tuple()}. update_task_protection(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateTaskProtection">>, Input, Options). %% @doc Modifies a task set. %% %% This is used when a service uses the `EXTERNAL' deployment controller %% type. For more information, see Amazon ECS Deployment Types: %% https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html %% in the Amazon Elastic Container Service Developer Guide. -spec update_task_set(aws_client:aws_client(), update_task_set_request()) -> {ok, update_task_set_response(), tuple()} | {error, any()} | {error, update_task_set_errors(), tuple()}. update_task_set(Client, Input) when is_map(Client), is_map(Input) -> update_task_set(Client, Input, []). -spec update_task_set(aws_client:aws_client(), update_task_set_request(), proplists:proplist()) -> {ok, update_task_set_response(), tuple()} | {error, any()} | {error, update_task_set_errors(), tuple()}. update_task_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateTaskSet">>, 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 :: map(). request(Client, Action, Input, Options) -> RequestFun = fun() -> do_request(Client, Action, Input, Options) end, aws_request:request(RequestFun, Options). do_request(Client, Action, Input0, Options) -> Client1 = Client#{service => <<"ecs">>}, Host = build_host(<<"ecs">>, Client1), URL = build_url(Host, Client1), Headers = [ {<<"Host">>, Host}, {<<"Content-Type">>, <<"application/x-amz-json-1.1">>}, {<<"X-Amz-Target">>, <<"AmazonEC2ContainerServiceV20141113.", Action/binary>>} ], Input = Input0, 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), {ok, Result, {200, ResponseHeaders, Client}} end; handle_response({ok, StatusCode, ResponseHeaders, Client}) -> {ok, Body} = hackney:body(Client), Error = jsx:decode(Body), {error, Error, {StatusCode, ResponseHeaders, Client}}; handle_response({error, Reason}) -> {error, Reason}. build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) -> Endpoint; build_host(_EndpointPrefix, #{region := <<"local">>}) -> <<"localhost">>; build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) -> aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>). build_url(Host, Client) -> Proto = aws_client:proto(Client), Port = aws_client:port(Client), aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).