diff --git a/.latest-tag-aws-sdk-go b/.latest-tag-aws-sdk-go index a262334c..a18ea989 100644 --- a/.latest-tag-aws-sdk-go +++ b/.latest-tag-aws-sdk-go @@ -1 +1 @@ -release-2024-11-18 +release-2024-11-19 diff --git a/lib/aws/generated/ec2.ex b/lib/aws/generated/ec2.ex index ad099696..a38f1e90 100644 --- a/lib/aws/generated/ec2.ex +++ b/lib/aws/generated/ec2.ex @@ -2569,6 +2569,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + modify_vpc_block_public_access_options_result() :: %{ + "VpcBlockPublicAccessOptions" => vpc_block_public_access_options() + } + + """ + @type modify_vpc_block_public_access_options_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: instance_network_interface_association() :: %{ @@ -3367,6 +3378,18 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + delete_vpc_block_public_access_exclusion_request() :: %{ + optional("DryRun") => boolean(), + required("ExclusionId") => String.t() + } + + """ + @type delete_vpc_block_public_access_exclusion_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: vpc_attachment() :: %{ @@ -3920,6 +3943,7 @@ defmodule AWS.EC2 do ## Example: vpc() :: %{ + "BlockPublicAccessStates" => block_public_access_states(), "CidrBlock" => String.t(), "CidrBlockAssociationSet" => list(vpc_cidr_block_association()()), "DhcpOptionsId" => String.t(), @@ -5420,6 +5444,7 @@ defmodule AWS.EC2 do "AvailabilityZone" => String.t(), "AvailabilityZoneId" => String.t(), "AvailableIpAddressCount" => integer(), + "BlockPublicAccessStates" => block_public_access_states(), "CidrBlock" => String.t(), "CustomerOwnedIpv4Pool" => String.t(), "DefaultForAz" => boolean(), @@ -5927,6 +5952,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + describe_vpc_block_public_access_options_request() :: %{ + optional("DryRun") => boolean() + } + + """ + @type describe_vpc_block_public_access_options_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: disable_image_deregistration_protection_request() :: %{ @@ -7059,6 +7095,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + block_public_access_states() :: %{ + "InternetGatewayBlockMode" => list(any()) + } + + """ + @type block_public_access_states() :: %{String.t() => any()} + + @typedoc """ + ## Example: modify_vpn_connection_options_result() :: %{ @@ -7247,6 +7294,21 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + describe_vpc_block_public_access_exclusions_request() :: %{ + optional("DryRun") => boolean(), + optional("ExclusionIds") => list(String.t()()), + optional("Filters") => list(filter()()), + optional("MaxResults") => integer(), + optional("NextToken") => String.t() + } + + """ + @type describe_vpc_block_public_access_exclusions_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: modify_network_interface_attribute_request() :: %{ @@ -9759,6 +9821,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + delete_vpc_block_public_access_exclusion_result() :: %{ + "VpcBlockPublicAccessExclusion" => vpc_block_public_access_exclusion() + } + + """ + @type delete_vpc_block_public_access_exclusion_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: spot_placement_score() :: %{ @@ -10317,6 +10390,18 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + modify_vpc_block_public_access_options_request() :: %{ + optional("DryRun") => boolean(), + required("InternetGatewayBlockMode") => list(any()) + } + + """ + @type modify_vpc_block_public_access_options_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: describe_network_interface_attribute_result() :: %{ @@ -14470,6 +14555,25 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + vpc_block_public_access_exclusion() :: %{ + "CreationTimestamp" => non_neg_integer(), + "DeletionTimestamp" => non_neg_integer(), + "ExclusionId" => String.t(), + "InternetGatewayExclusionMode" => list(any()), + "LastUpdateTimestamp" => non_neg_integer(), + "Reason" => String.t(), + "ResourceArn" => String.t(), + "State" => list(any()), + "Tags" => list(tag()()) + } + + """ + @type vpc_block_public_access_exclusion() :: %{String.t() => any()} + + @typedoc """ + ## Example: launch_template_config() :: %{ @@ -15844,6 +15948,19 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + modify_vpc_block_public_access_exclusion_request() :: %{ + optional("DryRun") => boolean(), + required("ExclusionId") => String.t(), + required("InternetGatewayExclusionMode") => list(any()) + } + + """ + @type modify_vpc_block_public_access_exclusion_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: get_coip_pool_usage_result() :: %{ @@ -15912,6 +16029,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + describe_vpc_block_public_access_options_result() :: %{ + "VpcBlockPublicAccessOptions" => vpc_block_public_access_options() + } + + """ + @type describe_vpc_block_public_access_options_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: image_recycle_bin_info() :: %{ @@ -16112,6 +16240,18 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + describe_vpc_block_public_access_exclusions_result() :: %{ + "NextToken" => String.t(), + "VpcBlockPublicAccessExclusions" => list(vpc_block_public_access_exclusion()()) + } + + """ + @type describe_vpc_block_public_access_exclusions_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: allocate_hosts_result() :: %{ @@ -20489,6 +20629,22 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + vpc_block_public_access_options() :: %{ + "AwsAccountId" => String.t(), + "AwsRegion" => String.t(), + "InternetGatewayBlockMode" => list(any()), + "LastUpdateTimestamp" => non_neg_integer(), + "Reason" => String.t(), + "State" => list(any()) + } + + """ + @type vpc_block_public_access_options() :: %{String.t() => any()} + + @typedoc """ + ## Example: launch_template_hibernation_options_request() :: %{ @@ -23288,6 +23444,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + create_vpc_block_public_access_exclusion_result() :: %{ + "VpcBlockPublicAccessExclusion" => vpc_block_public_access_exclusion() + } + + """ + @type create_vpc_block_public_access_exclusion_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: describe_import_snapshot_tasks_request() :: %{ @@ -26800,6 +26967,21 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + create_vpc_block_public_access_exclusion_request() :: %{ + optional("DryRun") => boolean(), + optional("SubnetId") => String.t(), + optional("TagSpecifications") => list(tag_specification()()), + optional("VpcId") => String.t(), + required("InternetGatewayExclusionMode") => list(any()) + } + + """ + @type create_vpc_block_public_access_exclusion_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: disassociate_trunk_interface_result() :: %{ @@ -27319,6 +27501,17 @@ defmodule AWS.EC2 do @typedoc """ + ## Example: + + modify_vpc_block_public_access_exclusion_result() :: %{ + "VpcBlockPublicAccessExclusion" => vpc_block_public_access_exclusion() + } + + """ + @type modify_vpc_block_public_access_exclusion_result() :: %{String.t() => any()} + + @typedoc """ + ## Example: purchase() :: %{ @@ -28474,10 +28667,12 @@ defmodule AWS.EC2 do Bundles an Amazon instance store-backed Windows instance. During bundling, only the root device volume (C:\) is bundled. Data on other - instance store volumes is not preserved. + instance + store volumes is not preserved. This action is not applicable for Linux/Unix instances or Windows instances that - are backed by Amazon EBS. + are + backed by Amazon EBS. """ @spec bundle_instance(map(), bundle_instance_request(), list()) :: {:ok, bundle_instance_result(), any()} @@ -28593,12 +28788,9 @@ defmodule AWS.EC2 do Removes your Amazon Web Services account from the launch permissions for the specified AMI. - For more - information, see [ - Cancel having an AMI shared with your Amazon Web Services + For more information, see [ Cancel having an AMI shared with your Amazon Web Services account](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cancel-sharing-an-AMI.html) - in the - *Amazon EC2 User Guide*. + in the *Amazon EC2 User Guide*. """ @spec cancel_image_launch_permission(map(), cancel_image_launch_permission_request(), list()) :: {:ok, cancel_image_launch_permission_result(), any()} @@ -28720,19 +28912,21 @@ defmodule AWS.EC2 do one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html). When you copy an AMI from one Region to another, the destination Region is the - current Region. + current + Region. When you copy an AMI from a Region to an Outpost, specify the ARN of the Outpost - as - the destination. Backing snapshots copied to an Outpost are encrypted by default - using - the default encryption key for the Region or the key that you specify. Outposts - do not - support unencrypted snapshots. + as the + destination. Backing snapshots copied to an Outpost are encrypted by default + using the default + encryption key for the Region or the key that you specify. Outposts do not + support unencrypted + snapshots. For information about the prerequisites when copying an AMI, see [Copy an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html) in - the *Amazon EC2 User Guide*. + the + *Amazon EC2 User Guide*. """ @spec copy_image(map(), copy_image_request(), list()) :: {:ok, copy_image_result(), any()} @@ -29193,14 +29387,17 @@ defmodule AWS.EC2 do end @doc """ - Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance - that is either running or stopped. + Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is + either running or + stopped. If you customized your instance with instance store volumes or Amazon EBS - volumes in addition to the root device volume, the - new AMI contains block device mapping information for those volumes. When you - launch an instance from this new AMI, - the instance automatically launches with those additional volumes. + volumes in addition + to the root device volume, the new AMI contains block device mapping information + for those + volumes. When you launch an instance from this new AMI, the instance + automatically launches + with those additional volumes. For more information, see [Create an Amazon EBS-backed Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) in the *Amazon Elastic Compute Cloud User Guide*. @@ -29904,9 +30101,9 @@ defmodule AWS.EC2 do @doc """ Starts a task that restores an AMI from an Amazon S3 object that was previously - created by using + created by + using [CreateStoreImageTask](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html). - To use this API, you must have the required permissions. For more information, see [Permissions for storing and restoring AMIs using Amazon S3](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-store-restore.html#ami-s3-permissions) @@ -30712,6 +30909,30 @@ defmodule AWS.EC2 do Request.request_post(client, meta, "CreateVpc", input, options) end + @doc """ + Create a VPC Block Public Access (BPA) exclusion. + + A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that + exempts it from the account’s BPA mode and will allow bidirectional or + egress-only access. You can create BPA exclusions for VPCs and subnets even when + BPA is not enabled on the account to ensure that there is no traffic disruption + to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see + [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + @spec create_vpc_block_public_access_exclusion( + map(), + create_vpc_block_public_access_exclusion_request(), + list() + ) :: + {:ok, create_vpc_block_public_access_exclusion_result(), any()} + | {:error, {:unexpected_response, any()}} + def create_vpc_block_public_access_exclusion(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "CreateVpcBlockPublicAccessExclusion", input, options) + end + @doc """ Creates a VPC endpoint. @@ -32054,6 +32275,30 @@ defmodule AWS.EC2 do Request.request_post(client, meta, "DeleteVpc", input, options) end + @doc """ + Delete a VPC Block Public Access (BPA) exclusion. + + A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that + exempts it from the account’s BPA mode and will allow bidirectional or + egress-only access. You can create BPA exclusions for VPCs and subnets even when + BPA is not enabled on the account to ensure that there is no traffic disruption + to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see + [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + @spec delete_vpc_block_public_access_exclusion( + map(), + delete_vpc_block_public_access_exclusion_request(), + list() + ) :: + {:ok, delete_vpc_block_public_access_exclusion_result(), any()} + | {:error, {:unexpected_response, any()}} + def delete_vpc_block_public_access_exclusion(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "DeleteVpcBlockPublicAccessExclusion", input, options) + end + @doc """ Deletes the specified VPC endpoint connection notifications. """ @@ -32272,27 +32517,28 @@ defmodule AWS.EC2 do @doc """ Deregisters the specified AMI. - After you deregister an AMI, it can't be used to - launch new instances. + After you deregister an AMI, it can't be used to launch new + instances. If you deregister an AMI that matches a Recycle Bin retention rule, the AMI is - retained - in the Recycle Bin for the specified retention period. For more information, see + retained in + the Recycle Bin for the specified retention period. For more information, see [Recycle Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in the *Amazon EC2 User Guide*. When you deregister an AMI, it doesn't affect any instances that you've already - launched from the AMI. You'll continue to incur usage costs for those instances - until - you terminate them. + launched + from the AMI. You'll continue to incur usage costs for those instances until you + terminate + them. When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot - that was - created for the root volume of the instance during the AMI creation process. - When you - deregister an instance store-backed AMI, it doesn't affect the files that you - uploaded - to Amazon S3 when you created the AMI. + that was created + for the root volume of the instance during the AMI creation process. When you + deregister an + instance store-backed AMI, it doesn't affect the files that you uploaded to + Amazon S3 when you + created the AMI. """ @spec deregister_image(map(), deregister_image_request(), list()) :: {:ok, nil, any()} @@ -32565,13 +32811,16 @@ defmodule AWS.EC2 do Describes the specified bundle tasks or all of your bundle tasks. Completed bundle tasks are listed for only a limited time. If your bundle task - is no longer in the list, you can still register an AMI from it. Just use + is no + longer in the list, you can still register an AMI from it. Just use `RegisterImage` with the Amazon S3 bucket name and image manifest name you - provided to the bundle task. + provided + to the bundle task. The order of the elements in the response, including those within nested - structures, might vary. Applications should not assume the elements appear in a - particular order. + structures, + might vary. Applications should not assume the elements appear in a particular + order. """ @spec describe_bundle_tasks(map(), describe_bundle_tasks_request(), list()) :: {:ok, describe_bundle_tasks_result(), any()} @@ -33192,11 +33441,13 @@ defmodule AWS.EC2 do @doc """ Describes the specified attribute of the specified AMI. - You can specify only one attribute at a time. + You can specify only one attribute + at a time. The order of the elements in the response, including those within nested - structures, might vary. Applications should not assume the elements appear in a - particular order. + structures, + might vary. Applications should not assume the elements appear in a particular + order. """ @spec describe_image_attribute(map(), describe_image_attribute_request(), list()) :: {:ok, image_attribute(), any()} @@ -33209,11 +33460,14 @@ defmodule AWS.EC2 do @doc """ Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of - the images available to you. + the + images available to you. The images available to you include public images, private images that you own, - and private images owned by other - Amazon Web Services accounts for which you have explicit launch permissions. + and + private images owned by other Amazon Web Services accounts for which you have + explicit launch + permissions. Recently deregistered images appear in the returned results for a short interval and then @@ -33227,8 +33481,9 @@ defmodule AWS.EC2 do susceptible to throttling and timeouts. The order of the elements in the response, including those within nested - structures, might vary. Applications should not assume the elements appear in a - particular order. + structures, + might vary. Applications should not assume the elements appear in a particular + order. """ @spec describe_images(map(), describe_images_request(), list()) :: {:ok, describe_images_result(), any()} @@ -35369,6 +35624,52 @@ defmodule AWS.EC2 do Request.request_post(client, meta, "DescribeVpcAttribute", input, options) end + @doc """ + Describe VPC Block Public Access (BPA) exclusions. + + A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that + exempts it from the account’s BPA mode and will allow bidirectional or + egress-only access. You can create BPA exclusions for VPCs and subnets even when + BPA is not enabled on the account to ensure that there is no traffic disruption + to the exclusions when VPC BPA is turned on. To learn more about VPC BPA, see + [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + @spec describe_vpc_block_public_access_exclusions( + map(), + describe_vpc_block_public_access_exclusions_request(), + list() + ) :: + {:ok, describe_vpc_block_public_access_exclusions_result(), any()} + | {:error, {:unexpected_response, any()}} + def describe_vpc_block_public_access_exclusions(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "DescribeVpcBlockPublicAccessExclusions", input, options) + end + + @doc """ + Describe VPC Block Public Access (BPA) options. + + VPC Block public Access (BPA) enables you to block resources in VPCs and subnets + that you own in a Region from reaching or being reached from the internet + through internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + @spec describe_vpc_block_public_access_options( + map(), + describe_vpc_block_public_access_options_request(), + list() + ) :: + {:ok, describe_vpc_block_public_access_options_result(), any()} + | {:error, {:unexpected_response, any()}} + def describe_vpc_block_public_access_options(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "DescribeVpcBlockPublicAccessOptions", input, options) + end + @doc """ This action is deprecated. @@ -35790,15 +36091,18 @@ defmodule AWS.EC2 do @doc """ Discontinue Windows fast launch for a Windows AMI, and clean up existing - pre-provisioned snapshots. + pre-provisioned + snapshots. After you disable Windows fast launch, the AMI uses the standard launch process - for each - new instance. Amazon EC2 must remove all pre-provisioned snapshots before you - can enable Windows fast launch again. + for + each new instance. Amazon EC2 must remove all pre-provisioned snapshots before + you can enable + Windows fast launch again. You can only change these settings for Windows AMIs that you own or that have - been shared with you. + been + shared with you. """ @spec disable_fast_launch(map(), disable_fast_launch_request(), list()) :: {:ok, disable_fast_launch_result(), any()} @@ -35871,10 +36175,10 @@ defmodule AWS.EC2 do `block-new-sharing`. When the API has completed the configuration, the response will be `unblocked`. - For more information, see [Block public access to your + For more information, see [Block + public access to your AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-intro.html#block-public-access-to-amis) - in - the *Amazon EC2 User Guide*. + in the *Amazon EC2 User Guide*. """ @spec disable_image_block_public_access( map(), @@ -36514,20 +36818,21 @@ defmodule AWS.EC2 do @doc """ When you enable Windows fast launch for a Windows AMI, images are - pre-provisioned, - using snapshots to launch instances up to 65% faster. - - To create the optimized Windows - image, Amazon EC2 launches an instance and runs through Sysprep steps, rebooting - as required. - Then it creates a set of reserved snapshots that are used for subsequent - launches. The - reserved snapshots are automatically replenished as they are used, depending on - your - settings for launch frequency. + pre-provisioned, using + snapshots to launch instances up to 65% faster. + + To create the optimized Windows image, Amazon EC2 + launches an instance and runs through Sysprep steps, rebooting as required. Then + it creates a + set of reserved snapshots that are used for subsequent launches. The reserved + snapshots are + automatically replenished as they are used, depending on your settings for + launch + frequency. You can only change these settings for Windows AMIs that you own or that have - been shared with you. + been + shared with you. """ @spec enable_fast_launch(map(), enable_fast_launch_request(), list()) :: {:ok, enable_fast_launch_result(), any()} @@ -36622,7 +36927,8 @@ defmodule AWS.EC2 do Enables deprecation of the specified AMI at the specified date and time. For more information, see [Deprecate an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-deprecate.html) in - the *Amazon EC2 User Guide*. + the + *Amazon EC2 User Guide*. """ @spec enable_image_deprecation(map(), enable_image_deprecation_request(), list()) :: {:ok, enable_image_deprecation_result(), any()} @@ -38075,8 +38381,8 @@ defmodule AWS.EC2 do @doc """ Lists one or more AMIs that are currently in the Recycle Bin. - For more information, - see [Recycle Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in + For more information, see + [Recycle Bin](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recycle-bin.html) in the *Amazon EC2 User Guide*. """ @spec list_images_in_recycle_bin(map(), list_images_in_recycle_bin_request(), list()) :: @@ -38475,18 +38781,18 @@ defmodule AWS.EC2 do @doc """ Modifies the specified attribute of the specified AMI. - You can specify only one attribute at a time. + You can specify only one attribute + at a time. To specify the attribute, you can use the `Attribute` parameter, or one of the - following parameters: - `Description`, `ImdsSupport`, or `LaunchPermission`. + following parameters: `Description`, `ImdsSupport`, or + `LaunchPermission`. Images with an Amazon Web Services Marketplace product code cannot be made public. To enable the SriovNetSupport enhanced networking attribute of an image, enable - SriovNetSupport on an instance - and create an AMI from the instance. + SriovNetSupport on an instance and create an AMI from the instance. """ @spec modify_image_attribute(map(), modify_image_attribute_request(), list()) :: {:ok, nil, any()} @@ -39382,6 +39688,50 @@ defmodule AWS.EC2 do Request.request_post(client, meta, "ModifyVpcAttribute", input, options) end + @doc """ + Modify VPC Block Public Access (BPA) exclusions. + + A VPC BPA exclusion is a mode that can be applied to a single VPC or subnet that + exempts it from the account’s BPA mode and will allow bidirectional or + egress-only access. You can create BPA exclusions for VPCs and subnets even when + BPA is not enabled on the account to ensure that there is no traffic disruption + to the exclusions when VPC BPA is turned on. + """ + @spec modify_vpc_block_public_access_exclusion( + map(), + modify_vpc_block_public_access_exclusion_request(), + list() + ) :: + {:ok, modify_vpc_block_public_access_exclusion_result(), any()} + | {:error, {:unexpected_response, any()}} + def modify_vpc_block_public_access_exclusion(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "ModifyVpcBlockPublicAccessExclusion", input, options) + end + + @doc """ + Modify VPC Block Public Access (BPA) options. + + VPC Block public Access (BPA) enables you to block resources in VPCs and subnets + that you own in a Region from reaching or being reached from the internet + through internet gateways and egress-only internet gateways. To learn more about + VPC BPA, see [Block public access to VPCs and subnets](https://docs.aws.amazon.com/vpc/latest/userguide/security-vpc-bpa.html) + in the *Amazon VPC User Guide*. + """ + @spec modify_vpc_block_public_access_options( + map(), + modify_vpc_block_public_access_options_request(), + list() + ) :: + {:ok, modify_vpc_block_public_access_options_result(), any()} + | {:error, {:unexpected_response, any()}} + def modify_vpc_block_public_access_options(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "ModifyVpcBlockPublicAccessOptions", input, options) + end + @doc """ Modifies attributes of a specified VPC endpoint. @@ -40001,14 +40351,15 @@ defmodule AWS.EC2 do ## Register a snapshot of a root device volume - You can use `RegisterImage` to create an Amazon EBS-backed Linux AMI from - a snapshot of a root device volume. You specify the snapshot using a block - device mapping. - You can't set the encryption state of the volume using the block device mapping. - If the - snapshot is encrypted, or encryption by default is enabled, the root volume of - an instance - launched from the AMI is encrypted. + You can use `RegisterImage` to create an Amazon EBS-backed Linux AMI from a + snapshot + of a root device volume. You specify the snapshot using a block device mapping. + You can't set + the encryption state of the volume using the block device mapping. If the + snapshot is + encrypted, or encryption by default is enabled, the root volume of an instance + launched from + the AMI is encrypted. For more information, see [Create an AMI from a snapshot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot) and [Use encryption with Amazon EBS-backed AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) in @@ -40017,8 +40368,7 @@ defmodule AWS.EC2 do ## Amazon Web Services Marketplace product codes If any snapshots have Amazon Web Services Marketplace product codes, they are - copied to the new - AMI. + copied to the new AMI. In most cases, AMIs for Windows, RedHat, SUSE, and SQL Server require correct licensing diff --git a/lib/aws/generated/ecs.ex b/lib/aws/generated/ecs.ex index 600cb3e5..0091a755 100644 --- a/lib/aws/generated/ecs.ex +++ b/lib/aws/generated/ecs.ex @@ -1310,6 +1310,7 @@ defmodule AWS.ECS do "dnsServers" => list(String.t()()), "restartPolicy" => container_restart_policy(), "dockerLabels" => map(), + "versionConsistency" => list(any()), "essential" => boolean(), "stopTimeout" => integer(), "memoryReservation" => integer(), diff --git a/lib/aws/generated/efs.ex b/lib/aws/generated/efs.ex index e9a6c0ba..fed5b7f4 100644 --- a/lib/aws/generated/efs.ex +++ b/lib/aws/generated/efs.ex @@ -299,7 +299,8 @@ defmodule AWS.EFS do "AvailabilityZoneName" => String.t(), "FileSystemId" => String.t(), "KmsKeyId" => String.t(), - "Region" => String.t() + "Region" => String.t(), + "RoleArn" => String.t() } """ @@ -349,10 +350,12 @@ defmodule AWS.EFS do ## Example: - delete_replication_configuration_request() :: %{} + delete_replication_configuration_request() :: %{ + optional("DeletionMode") => list(any()) + } """ - @type delete_replication_configuration_request() :: %{} + @type delete_replication_configuration_request() :: %{String.t() => any()} @typedoc """ @@ -737,6 +740,7 @@ defmodule AWS.EFS do "OriginalSourceFileSystemArn" => String.t(), "SourceFileSystemArn" => String.t(), "SourceFileSystemId" => String.t(), + "SourceFileSystemOwnerId" => String.t(), "SourceFileSystemRegion" => String.t() } @@ -928,8 +932,11 @@ defmodule AWS.EFS do destination() :: %{ "FileSystemId" => String.t(), "LastReplicatedTimestamp" => non_neg_integer(), + "OwnerId" => String.t(), "Region" => String.t(), - "Status" => list(any()) + "RoleArn" => String.t(), + "Status" => list(any()), + "StatusMessage" => String.t() } """ @@ -1442,21 +1449,16 @@ defmodule AWS.EFS do system state. This operation accepts an optional `PerformanceMode` parameter that you choose - for your file system. We recommend `generalPurpose` performance mode for all - file - systems. File systems using the `maxIO` mode is a previous generation - performance type that is designed for highly parallelized workloads that can - tolerate higher latencies - than the General Purpose mode. Max I/O mode is not supported for One Zone file + for your file system. We recommend `generalPurpose` + `PerformanceMode` for all file + systems. The `maxIO` mode is a previous generation performance type that is + designed for highly parallelized workloads that can tolerate higher latencies + than the `generalPurpose` mode. `MaxIO` mode is not supported for One Zone file systems or file systems that use Elastic throughput. - Due to the higher per-operation latencies with Max I/O, we recommend using - General Purpose performance mode for all file systems. - - The performance mode can't be changed after - the file system has been created. For more information, see [Amazon EFS performance - modes](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html). + The `PerformanceMode` can't be changed after the file system has been + created. For more information, see [Amazon EFS performance modes](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html). You can set the throughput mode for the file system using the `ThroughputMode` parameter. @@ -1704,110 +1706,39 @@ defmodule AWS.EFS do end @doc """ - Creates a replication configuration that replicates an existing EFS file system - to a new, read-only file system. + Creates a replication configuration to either a new or existing EFS file system. For more information, see [Amazon EFS replication](https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html) in - the - *Amazon EFS User Guide*. The replication configuration - specifies the following: - - * - - **Source file system** – The EFS file system that - you want replicated. The source file system cannot be a destination file system - in an - existing replication configuration. + the *Amazon EFS User + Guide*. The replication configuration specifies the following: * - **Amazon Web Services Region** – The Amazon Web Services Region in which the - destination file system is created. Amazon EFS - replication is available in all Amazon Web Services Regions in which EFS is - available. The - Region must be enabled. For more information, see [Managing Amazon Web Services Regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable) - in the *Amazon Web Services General Reference - Reference Guide*. + **Source file system** – The EFS file + system that you want to replicate. * - **Destination file system configuration** – The - configuration of the destination file system to which the source file system - will be - replicated. There can only be one destination file system in a replication - configuration. + **Destination file system** – The destination file + system to which the source file system is replicated. There can only be one + destination + file system in a replication configuration. - Parameters for the replication configuration include: + A file system can be part of only one replication configuration. - * + The destination parameters for the replication configuration depend on + whether you are replicating to a new file system or to an existing file system, + and if you + are replicating across Amazon Web Services accounts. See `DestinationToCreate` + for more information. - **File system ID** – The ID of the destination - file system for the replication. If no ID is provided, then EFS creates a new - file - system with the default settings. For existing file systems, the file system's - replication overwrite protection must be disabled. For more information, see [ - Replicating to - an existing file - system](https://docs.aws.amazon.com/efs/latest/ug/efs-replication#replicate-existing-destination). - - * - - **Availability Zone** – If you want the destination file - system to use One Zone storage, you must specify the Availability Zone to create - the - file system in. For more information, see [ - EFS file system - types](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the - *Amazon EFS User + This operation requires permissions for the + `elasticfilesystem:CreateReplicationConfiguration` + action. Additionally, other permissions are required depending on how you are + replicating file systems. + For more information, see [Required permissions for replication](https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html#efs-replication-permissions) + in the *Amazon EFS User Guide*. - - * - - **Encryption** – All destination file systems are created - with encryption at rest enabled. You can specify the Key Management Service - (KMS) key that is used to encrypt the destination file system. If you don't - specify a KMS key, your service-managed KMS key for - Amazon EFS is used. - - After the file system is created, you cannot change the KMS key. - - After the file system is created, you cannot change the KMS key. - - For new destination file systems, the following properties are set by default: - - * - - **Performance mode** - The destination file system's - performance mode matches that of the source file system, unless the destination - file - system uses EFS One Zone storage. In that case, the General Purpose performance - mode is - used. The performance mode cannot be changed. - - * - - **Throughput mode** - The destination file system's - throughput mode matches that of the source file system. After the file system is - created, - you can modify the throughput mode. - - * - - **Lifecycle management** – Lifecycle management is not enabled - on the destination file system. After the destination file system is created, - you can - enable lifecycle management. - - * - - **Automatic backups** – Automatic daily backups are enabled on - the destination file system. After the file system is created, you can change - this - setting. - - For more information, see [Amazon EFS replication](https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html) in - the - *Amazon EFS User Guide*. """ @spec create_replication_configuration( map(), @@ -1937,7 +1868,7 @@ defmodule AWS.EFS do Services console to delete a file system. - You cannot delete a file system that is part of an EFS Replication + You cannot delete a file system that is part of an EFS replication configuration. You need to delete the replication configuration first. @@ -2106,7 +2037,12 @@ defmodule AWS.EFS do "/2015-02-01/file-systems/#{AWS.Util.encode_uri(source_file_system_id)}/replication-configuration" headers = [] - query_params = [] + + {query_params, input} = + [ + {"DeletionMode", "deletionMode"} + ] + |> Request.build_params(input) meta = metadata() @@ -2384,9 +2320,8 @@ defmodule AWS.EFS do Returns the current `LifecycleConfiguration` object for the specified Amazon EFS file system. - Lifecycle management uses the `LifecycleConfiguration` object - to identify when to move files between storage classes. For a file system - without a + Lifecycle management uses the `LifecycleConfiguration` object to + identify when to move files between storage classes. For a file system without a `LifecycleConfiguration` object, the call returns an empty array in the response. @@ -2785,8 +2720,9 @@ defmodule AWS.EFS do character limit. When an explicit policy is set, it overrides the default policy. For more information - about the default file system policy, see [Default EFS File System - Policy](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy). + about the default file system policy, see [ + Default EFS file system + policy](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy). EFS file system policies have a 20,000 character limit. @@ -2837,8 +2773,8 @@ defmodule AWS.EFS do TransitionToArchive must either not be set or must be later than TransitionToIA. The Archive storage class is available only for file systems that use the - Elastic Throughput mode - and the General Purpose Performance mode. + Elastic throughput mode + and the General Purpose performance mode. * @@ -2862,7 +2798,7 @@ defmodule AWS.EFS do * The ID for the file system for which you are enabling, disabling, or modifying - Lifecycle management. + lifecycle management. * A `LifecyclePolicies` array of `LifecyclePolicy` objects that diff --git a/lib/aws/generated/glue.ex b/lib/aws/generated/glue.ex index 0d593b15..ded89764 100644 --- a/lib/aws/generated/glue.ex +++ b/lib/aws/generated/glue.ex @@ -1351,7 +1351,8 @@ defmodule AWS.Glue do "enabled" => boolean(), "orphanFileDeletionConfiguration" => orphan_file_deletion_configuration(), "retentionConfiguration" => retention_configuration(), - "roleArn" => String.t() + "roleArn" => String.t(), + "vpcConfiguration" => list() } """ @@ -13535,8 +13536,6 @@ defmodule AWS.Glue do @doc """ Creates a new table optimizer for a specific function. - - `compaction` is the only currently supported optimizer type. """ @spec create_table_optimizer(map(), create_table_optimizer_request(), list()) :: {:ok, create_table_optimizer_response(), any()} diff --git a/lib/aws/generated/keyspaces.ex b/lib/aws/generated/keyspaces.ex index 80419119..fa10ddd8 100644 --- a/lib/aws/generated/keyspaces.ex +++ b/lib/aws/generated/keyspaces.ex @@ -122,6 +122,17 @@ defmodule AWS.Keyspaces do @typedoc """ + ## Example: + + update_keyspace_response() :: %{ + "resourceArn" => String.t() + } + + """ + @type update_keyspace_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: list_types_response() :: %{ @@ -742,9 +753,23 @@ defmodule AWS.Keyspaces do @typedoc """ + ## Example: + + update_keyspace_request() :: %{ + optional("clientSideTimestamps") => client_side_timestamps(), + required("keyspaceName") => String.t(), + required("replicationSpecification") => replication_specification() + } + + """ + @type update_keyspace_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: get_keyspace_response() :: %{ + optional("replicationGroupStatuses") => list(replication_group_status()()), optional("replicationRegions") => list(String.t()()), required("keyspaceName") => String.t(), required("replicationStrategy") => String.t(), @@ -768,6 +793,19 @@ defmodule AWS.Keyspaces do @typedoc """ + ## Example: + + replication_group_status() :: %{ + "keyspaceStatus" => String.t(), + "region" => String.t(), + "tablesReplicationProgress" => String.t() + } + + """ + @type replication_group_status() :: %{String.t() => any()} + + @typedoc """ + ## Example: restore_table_response() :: %{ @@ -1013,6 +1051,14 @@ defmodule AWS.Keyspaces do | resource_not_found_exception() | conflict_exception() + @type update_keyspace_errors() :: + validation_exception() + | access_denied_exception() + | internal_server_exception() + | service_quota_exceeded_exception() + | resource_not_found_exception() + | conflict_exception() + @type update_table_errors() :: validation_exception() | access_denied_exception() @@ -1092,6 +1138,9 @@ defmodule AWS.Keyspaces do The `CreateType` operation creates a new user-defined type in the specified keyspace. + To configure the required permissions, see [Permissions to create a UDT](https://docs.aws.amazon.com/keyspaces/latest/devguide/configure-udt-permissions.html#udt-permissions-create) + in the *Amazon Keyspaces Developer Guide*. + For more information, see [User-defined types (UDTs)](https://docs.aws.amazon.com/keyspaces/latest/devguide/udts.html) in the *Amazon Keyspaces Developer Guide*. @@ -1148,6 +1197,9 @@ defmodule AWS.Keyspaces do You can only delete a type that is not used in a table or another UDT. + + To configure the required permissions, see [Permissions to delete a UDT](https://docs.aws.amazon.com/keyspaces/latest/devguide/configure-udt-permissions.html#udt-permissions-drop) + in the *Amazon Keyspaces Developer Guide*. """ @spec delete_type(map(), delete_type_request(), list()) :: {:ok, delete_type_response(), any()} @@ -1160,7 +1212,10 @@ defmodule AWS.Keyspaces do end @doc """ - Returns the name and the Amazon Resource Name (ARN) of the specified table. + Returns the name of the specified keyspace, the Amazon Resource Name (ARN), the + replication strategy, the Amazon Web Services Regions of + a multi-Region keyspace, and the status of newly added Regions after an + `UpdateKeyspace` operation. """ @spec get_keyspace(map(), get_keyspace_request(), list()) :: {:ok, get_keyspace_response(), any()} @@ -1239,7 +1294,9 @@ defmodule AWS.Keyspaces do To read keyspace metadata using `GetType`, the IAM principal needs `Select` action - permissions for the system keyspace. + permissions for the system keyspace. To configure the required permissions, see + [Permissions to view a UDT](https://docs.aws.amazon.com/keyspaces/latest/devguide/configure-udt-permissions.html#udt-permissions-view) + in the *Amazon Keyspaces Developer Guide*. """ @spec get_type(map(), get_type_request(), list()) :: {:ok, get_type_response(), any()} @@ -1305,7 +1362,9 @@ defmodule AWS.Keyspaces do To read keyspace metadata using `ListTypes`, the IAM principal needs `Select` action - permissions for the system keyspace. + permissions for the system keyspace. To configure the required permissions, see + [Permissions to view a UDT](https://docs.aws.amazon.com/keyspaces/latest/devguide/configure-udt-permissions.html#udt-permissions-view) + in the *Amazon Keyspaces Developer Guide*. """ @spec list_types(map(), list_types_request(), list()) :: {:ok, list_types_response(), any()} @@ -1426,6 +1485,34 @@ defmodule AWS.Keyspaces do Request.request_post(client, meta, "UntagResource", input, options) end + @doc """ + + Adds a new Amazon Web Services Region to the keyspace. + + You can add a new Region to a keyspace that is either a single or a multi-Region + keyspace. + The new replica Region is applied to all tables in the keyspace. For more + information, see [Add an Amazon Web Services Region to a keyspace in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/keyspaces-multi-region-add-replica.html) + in the *Amazon Keyspaces Developer + Guide*. + + To change a single-Region to a multi-Region keyspace, you have to enable + client-side timestamps + for all tables in the keyspace. For more information, see + [Client-side timestamps in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/client-side-timestamps.html) + in the *Amazon Keyspaces Developer + Guide*. + """ + @spec update_keyspace(map(), update_keyspace_request(), list()) :: + {:ok, update_keyspace_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, update_keyspace_errors()} + def update_keyspace(%Client{} = client, input, options \\ []) do + meta = metadata() + + Request.request_post(client, meta, "UpdateKeyspace", input, options) + end + @doc """ Adds new columns to the table or updates one of the table's settings, for example diff --git a/lib/aws/generated/tax_settings.ex b/lib/aws/generated/tax_settings.ex index 69d8e2c1..a6e607d5 100644 --- a/lib/aws/generated/tax_settings.ex +++ b/lib/aws/generated/tax_settings.ex @@ -30,7 +30,7 @@ defmodule AWS.TaxSettings do ## Example: get_tax_registration_document_request() :: %{ - required("destinationS3Location") => destination_s3_location(), + optional("destinationS3Location") => destination_s3_location(), required("taxDocumentMetadata") => tax_document_metadata() } @@ -75,6 +75,18 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + list_tax_exemptions_request() :: %{ + optional("maxResults") => integer(), + optional("nextToken") => String.t() + } + + """ + @type list_tax_exemptions_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: additional_info_response() :: %{ @@ -126,6 +138,17 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + attachment_upload_exception() :: %{ + "message" => String.t() + } + + """ + @type attachment_upload_exception() :: %{String.t() => any()} + + @typedoc """ + ## Example: tax_inheritance_details() :: %{ @@ -138,6 +161,22 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + tax_exemption() :: %{ + "authority" => authority(), + "effectiveDate" => [non_neg_integer()], + "expirationDate" => [non_neg_integer()], + "status" => list(any()), + "systemEffectiveDate" => [non_neg_integer()], + "taxExemptionType" => tax_exemption_type() + } + + """ + @type tax_exemption() :: %{String.t() => any()} + + @typedoc """ + ## Example: malaysia_additional_info() :: %{ @@ -173,6 +212,18 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + tax_registration_doc_file() :: %{ + "fileContent" => binary(), + "fileName" => String.t() + } + + """ + @type tax_registration_doc_file() :: %{String.t() => any()} + + @typedoc """ + ## Example: india_additional_info() :: %{ @@ -196,6 +247,18 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + batch_get_tax_exemptions_response() :: %{ + "failedAccounts" => list(String.t()()), + "taxExemptionDetailsMap" => map() + } + + """ + @type batch_get_tax_exemptions_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: put_supplemental_tax_registration_request() :: %{ @@ -219,6 +282,17 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + case_creation_limit_exceeded_exception() :: %{ + "message" => String.t() + } + + """ + @type case_creation_limit_exceeded_exception() :: %{String.t() => any()} + + @typedoc """ + ## Example: delete_supplemental_tax_registration_request() :: %{ @@ -230,6 +304,15 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + get_tax_exemption_types_request() :: %{} + + """ + @type get_tax_exemption_types_request() :: %{} + + @typedoc """ + ## Example: get_tax_registration_request() :: %{ @@ -241,6 +324,17 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + get_tax_inheritance_response() :: %{ + "heritageStatus" => list(any()) + } + + """ + @type get_tax_inheritance_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: romania_additional_info() :: %{ @@ -311,6 +405,42 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + tax_exemption_type() :: %{ + "applicableJurisdictions" => list(authority()()), + "description" => String.t(), + "displayName" => String.t() + } + + """ + @type tax_exemption_type() :: %{String.t() => any()} + + @typedoc """ + + ## Example: + + authority() :: %{ + "country" => String.t(), + "state" => String.t() + } + + """ + @type authority() :: %{String.t() => any()} + + @typedoc """ + + ## Example: + + get_tax_exemption_types_response() :: %{ + "taxExemptionTypes" => list(tax_exemption_type()()) + } + + """ + @type get_tax_exemption_types_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: batch_put_tax_registration_response() :: %{ @@ -428,6 +558,27 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + put_tax_inheritance_response() :: %{} + + """ + @type put_tax_inheritance_response() :: %{} + + @typedoc """ + + ## Example: + + list_tax_exemptions_response() :: %{ + "nextToken" => String.t(), + "taxExemptionDetailsMap" => map() + } + + """ + @type list_tax_exemptions_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: account_details() :: %{ @@ -442,9 +593,21 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + put_tax_exemption_response() :: %{ + "caseId" => String.t() + } + + """ + @type put_tax_exemption_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: tax_registration_document() :: %{ + "file" => tax_registration_doc_file(), "s3Location" => source_s3_location() } @@ -612,6 +775,31 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + put_tax_exemption_request() :: %{ + required("accountIds") => list(String.t()()), + required("authority") => authority(), + required("exemptionCertificate") => exemption_certificate(), + required("exemptionType") => String.t() + } + + """ + @type put_tax_exemption_request() :: %{String.t() => any()} + + @typedoc """ + + ## Example: + + access_denied_exception() :: %{ + "message" => String.t() + } + + """ + @type access_denied_exception() :: %{String.t() => any()} + + @typedoc """ + ## Example: list_supplemental_tax_registrations_request() :: %{ @@ -652,6 +840,20 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + tax_exemption_details() :: %{ + "heritageObtainedDetails" => boolean(), + "heritageObtainedParentEntity" => String.t(), + "heritageObtainedReason" => String.t(), + "taxExemptions" => list(tax_exemption()()) + } + + """ + @type tax_exemption_details() :: %{String.t() => any()} + + @typedoc """ + ## Example: validation_exception() :: %{ @@ -677,6 +879,15 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + get_tax_inheritance_request() :: %{} + + """ + @type get_tax_inheritance_request() :: %{} + + @typedoc """ + ## Example: batch_put_tax_registration_error() :: %{ @@ -690,6 +901,29 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + put_tax_inheritance_request() :: %{ + optional("heritageStatus") => list(any()) + } + + """ + @type put_tax_inheritance_request() :: %{String.t() => any()} + + @typedoc """ + + ## Example: + + exemption_certificate() :: %{ + "documentFile" => binary(), + "documentName" => String.t() + } + + """ + @type exemption_certificate() :: %{String.t() => any()} + + @typedoc """ + ## Example: address() :: %{ @@ -748,6 +982,17 @@ defmodule AWS.TaxSettings do @typedoc """ + ## Example: + + batch_get_tax_exemptions_request() :: %{ + required("accountIds") => list(String.t()()) + } + + """ + @type batch_get_tax_exemptions_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: account_meta_data() :: %{ @@ -788,7 +1033,8 @@ defmodule AWS.TaxSettings do ## Example: get_tax_registration_document_response() :: %{ - "destinationFilePath" => String.t() + "destinationFilePath" => String.t(), + "presignedS3Url" => String.t() } """ @@ -797,6 +1043,9 @@ defmodule AWS.TaxSettings do @type batch_delete_tax_registration_errors() :: validation_exception() | internal_server_exception() | conflict_exception() + @type batch_get_tax_exemptions_errors() :: + validation_exception() | internal_server_exception() | resource_not_found_exception() + @type batch_put_tax_registration_errors() :: validation_exception() | internal_server_exception() | conflict_exception() @@ -812,6 +1061,12 @@ defmodule AWS.TaxSettings do | resource_not_found_exception() | conflict_exception() + @type get_tax_exemption_types_errors() :: + validation_exception() | internal_server_exception() | resource_not_found_exception() + + @type get_tax_inheritance_errors() :: + validation_exception() | internal_server_exception() | resource_not_found_exception() + @type get_tax_registration_errors() :: validation_exception() | internal_server_exception() | resource_not_found_exception() @@ -821,12 +1076,29 @@ defmodule AWS.TaxSettings do @type list_supplemental_tax_registrations_errors() :: validation_exception() | internal_server_exception() | resource_not_found_exception() + @type list_tax_exemptions_errors() :: + validation_exception() | internal_server_exception() | resource_not_found_exception() + @type list_tax_registrations_errors() :: validation_exception() | internal_server_exception() | resource_not_found_exception() @type put_supplemental_tax_registration_errors() :: validation_exception() | internal_server_exception() | conflict_exception() + @type put_tax_exemption_errors() :: + validation_exception() + | access_denied_exception() + | internal_server_exception() + | resource_not_found_exception() + | case_creation_limit_exceeded_exception() + | attachment_upload_exception() + + @type put_tax_inheritance_errors() :: + validation_exception() + | internal_server_exception() + | resource_not_found_exception() + | conflict_exception() + @type put_tax_registration_errors() :: validation_exception() | internal_server_exception() | conflict_exception() @@ -880,6 +1152,33 @@ defmodule AWS.TaxSettings do ) end + @doc """ + Get the active tax exemptions for a given list of accounts. + """ + @spec batch_get_tax_exemptions(map(), batch_get_tax_exemptions_request(), list()) :: + {:ok, batch_get_tax_exemptions_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, batch_get_tax_exemptions_errors()} + def batch_get_tax_exemptions(%Client{} = client, input, options \\ []) do + url_path = "/BatchGetTaxExemptions" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Adds or updates tax registration for multiple accounts in batch. @@ -1145,6 +1444,60 @@ defmodule AWS.TaxSettings do ) end + @doc """ + Get supported tax exemption types. + """ + @spec get_tax_exemption_types(map(), get_tax_exemption_types_request(), list()) :: + {:ok, get_tax_exemption_types_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, get_tax_exemption_types_errors()} + def get_tax_exemption_types(%Client{} = client, input, options \\ []) do + url_path = "/GetTaxExemptionTypes" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + + @doc """ + The get account tax inheritance status. + """ + @spec get_tax_inheritance(map(), get_tax_inheritance_request(), list()) :: + {:ok, get_tax_inheritance_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, get_tax_inheritance_errors()} + def get_tax_inheritance(%Client{} = client, input, options \\ []) do + url_path = "/GetTaxInheritance" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Retrieves tax registration for a single account. """ @@ -1232,6 +1585,33 @@ defmodule AWS.TaxSettings do ) end + @doc """ + Retrieves the tax exemption of accounts listed in a consolidated billing family. + """ + @spec list_tax_exemptions(map(), list_tax_exemptions_request(), list()) :: + {:ok, list_tax_exemptions_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, list_tax_exemptions_errors()} + def list_tax_exemptions(%Client{} = client, input, options \\ []) do + url_path = "/ListTaxExemptions" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Retrieves the tax registration of accounts listed in a consolidated billing family. @@ -1296,6 +1676,61 @@ defmodule AWS.TaxSettings do ) end + @doc """ + Adds the tax exemption for a single account or all accounts listed in a + consolidated billing family. + """ + @spec put_tax_exemption(map(), put_tax_exemption_request(), list()) :: + {:ok, put_tax_exemption_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, put_tax_exemption_errors()} + def put_tax_exemption(%Client{} = client, input, options \\ []) do + url_path = "/PutTaxExemption" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + + @doc """ + The updated tax inheritance status. + """ + @spec put_tax_inheritance(map(), put_tax_inheritance_request(), list()) :: + {:ok, put_tax_inheritance_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, put_tax_inheritance_errors()} + def put_tax_inheritance(%Client{} = client, input, options \\ []) do + url_path = "/PutTaxInheritance" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Adds or updates tax registration for a single account. diff --git a/lib/aws/generated/work_spaces.ex b/lib/aws/generated/work_spaces.ex index d34c0843..a81d3293 100644 --- a/lib/aws/generated/work_spaces.ex +++ b/lib/aws/generated/work_spaces.ex @@ -4209,7 +4209,7 @@ defmodule AWS.WorkSpaces do You don't need to specify the `PCOIP` protocol for Linux bundles - because `DCV` (formerly WSP) is the default protocol for those bundles. + because `WSP` is the default protocol for those bundles. User-decoupled WorkSpaces are only supported by Amazon WorkSpaces