diff --git a/.changes/1.35.69.json b/.changes/1.35.69.json new file mode 100644 index 0000000000..28000710a7 --- /dev/null +++ b/.changes/1.35.69.json @@ -0,0 +1,17 @@ +[ + { + "category": "``directconnect``", + "description": "Update DescribeDirectConnectGatewayAssociations API to return associated core network information if a Direct Connect gateway is attached to a Cloud WAN core network.", + "type": "api-change" + }, + { + "category": "``networkmanager``", + "description": "This release adds native Direct Connect integration on Cloud WAN enabling customers to directly attach their Direct Connect gateways to Cloud WAN without the need for an intermediate Transit Gateway.", + "type": "api-change" + }, + { + "category": "``s3``", + "description": "Amazon Simple Storage Service / Features: Add support for ETag based conditional writes in PutObject and CompleteMultiPartUpload APIs to prevent unintended object modifications.", + "type": "api-change" + } +] \ No newline at end of file diff --git a/.github/workflows/closed-issue-message.yml b/.github/workflows/closed-issue-message.yml index 447d8c7e92..fe492c73e8 100644 --- a/.github/workflows/closed-issue-message.yml +++ b/.github/workflows/closed-issue-message.yml @@ -12,7 +12,7 @@ jobs: permissions: issues: write steps: - - uses: aws-actions/closed-issue-message@80edfc24bdf1283400eb04d20a8a605ae8bf7d48 + - uses: aws-actions/closed-issue-message@37548691e7cc75ba58f85c9f873f9eee43590449 with: # These inputs are both required repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 73addb9ef0..7436722692 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,14 @@ CHANGELOG ========= +1.35.69 +======= + +* api-change:``directconnect``: Update DescribeDirectConnectGatewayAssociations API to return associated core network information if a Direct Connect gateway is attached to a Cloud WAN core network. +* api-change:``networkmanager``: This release adds native Direct Connect integration on Cloud WAN enabling customers to directly attach their Direct Connect gateways to Cloud WAN without the need for an intermediate Transit Gateway. +* api-change:``s3``: Amazon Simple Storage Service / Features: Add support for ETag based conditional writes in PutObject and CompleteMultiPartUpload APIs to prevent unintended object modifications. + + 1.35.68 ======= diff --git a/botocore/__init__.py b/botocore/__init__.py index 7cb0bcfcba..29b5a778ec 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.35.68' +__version__ = '1.35.69' class NullHandler(logging.Handler): diff --git a/botocore/data/directconnect/2012-10-25/service-2.json b/botocore/data/directconnect/2012-10-25/service-2.json index 21398acdd2..93a03c27e0 100644 --- a/botocore/data/directconnect/2012-10-25/service-2.json +++ b/botocore/data/directconnect/2012-10-25/service-2.json @@ -1202,6 +1202,24 @@ } } }, + "AssociatedCoreNetwork":{ + "type":"structure", + "members":{ + "id":{ + "shape":"CoreNetworkIdentifier", + "documentation":"

The ID of the Cloud WAN core network.

" + }, + "ownerAccount":{ + "shape":"OwnerAccount", + "documentation":"

The account owner of the Cloud WAN core network.

" + }, + "attachmentId":{ + "shape":"CoreNetworkAttachmentId", + "documentation":"

the ID of the Direct Connect attachment

" + } + }, + "documentation":"

The Amazon Web Services Cloud WAN core network that the Direct Connect attachment is associated with.

" + }, "AssociatedGateway":{ "type":"structure", "members":{ @@ -1550,6 +1568,18 @@ } } }, + "CoreNetworkAttachmentId":{ + "type":"string", + "max":28, + "min":12, + "pattern":"^attachment-([0-9a-f]{1,17})$" + }, + "CoreNetworkIdentifier":{ + "type":"string", + "max":30, + "min":14, + "pattern":"^core-network-([0-9a-f]{1,17})$" + }, "Count":{"type":"integer"}, "CreateBGPPeerRequest":{ "type":"structure", @@ -2425,6 +2455,10 @@ "shape":"RouteFilterPrefixList", "documentation":"

The Amazon VPC prefixes to advertise to the Direct Connect gateway.

" }, + "associatedCoreNetwork":{ + "shape":"AssociatedCoreNetwork", + "documentation":"

The ID of the Cloud WAN core network associated with the Direct Connect attachment.

" + }, "virtualGatewayId":{ "shape":"VirtualGatewayId", "documentation":"

The ID of the virtual private gateway. Applies only to private virtual interfaces.

" diff --git a/botocore/data/networkmanager/2019-07-05/service-2.json b/botocore/data/networkmanager/2019-07-05/service-2.json index 70025bd73a..1def86ce27 100644 --- a/botocore/data/networkmanager/2019-07-05/service-2.json +++ b/botocore/data/networkmanager/2019-07-05/service-2.json @@ -201,6 +201,24 @@ ], "documentation":"

Creates a new device in a global network. If you specify both a site ID and a location, the location of the site is used for visualization in the Network Manager console.

" }, + "CreateDirectConnectGatewayAttachment":{ + "name":"CreateDirectConnectGatewayAttachment", + "http":{ + "method":"POST", + "requestUri":"/direct-connect-gateway-attachments" + }, + "input":{"shape":"CreateDirectConnectGatewayAttachmentRequest"}, + "output":{"shape":"CreateDirectConnectGatewayAttachmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates an Amazon Web Services Direct Connect gateway attachment

" + }, "CreateGlobalNetwork":{ "name":"CreateGlobalNetwork", "http":{ @@ -823,6 +841,23 @@ ], "documentation":"

Gets information about one or more of your devices in a global network.

" }, + "GetDirectConnectGatewayAttachment":{ + "name":"GetDirectConnectGatewayAttachment", + "http":{ + "method":"GET", + "requestUri":"/direct-connect-gateway-attachments/{attachmentId}" + }, + "input":{"shape":"GetDirectConnectGatewayAttachmentRequest"}, + "output":{"shape":"GetDirectConnectGatewayAttachmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about a specific Amazon Web Services Direct Connect gateway attachment.

" + }, "GetLinkAssociations":{ "name":"GetLinkAssociations", "http":{ @@ -1420,6 +1455,24 @@ ], "documentation":"

Updates the details for an existing device. To remove information for any of the parameters, specify an empty string.

" }, + "UpdateDirectConnectGatewayAttachment":{ + "name":"UpdateDirectConnectGatewayAttachment", + "http":{ + "method":"PATCH", + "requestUri":"/direct-connect-gateway-attachments/{attachmentId}" + }, + "input":{"shape":"UpdateDirectConnectGatewayAttachmentRequest"}, + "output":{"shape":"UpdateDirectConnectGatewayAttachmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the edge locations associated with an Amazon Web Services Direct Connect gateway attachment.

" + }, "UpdateGlobalNetwork":{ "name":"UpdateGlobalNetwork", "http":{ @@ -1765,7 +1818,11 @@ }, "EdgeLocation":{ "shape":"ExternalRegionCode", - "documentation":"

The Region where the edge is located.

" + "documentation":"

The Region where the edge is located. This is returned for all attachment types except a Direct Connect gateway attachment, which instead returns EdgeLocations.

" + }, + "EdgeLocations":{ + "shape":"ExternalRegionCodeList", + "documentation":"

The edge locations that the Direct Connect gateway is associated with. This is returned only for Direct Connect gateway attachments. All other attachment types retrun EdgeLocation.

" }, "ResourceArn":{ "shape":"ResourceArn", @@ -1842,7 +1899,10 @@ "SUBNET_UNSUPPORTED_AVAILABILITY_ZONE", "SUBNET_NO_IPV6_CIDRS", "VPN_CONNECTION_NOT_FOUND", - "MAXIMUM_NO_ENCAP_LIMIT_EXCEEDED" + "MAXIMUM_NO_ENCAP_LIMIT_EXCEEDED", + "DIRECT_CONNECT_GATEWAY_NOT_FOUND", + "DIRECT_CONNECT_GATEWAY_EXISTING_ATTACHMENTS", + "DIRECT_CONNECT_GATEWAY_NO_PRIVATE_VIF" ] }, "AttachmentErrorList":{ @@ -1881,6 +1941,7 @@ "CONNECT", "SITE_TO_SITE_VPN", "VPC", + "DIRECT_CONNECT_GATEWAY", "TRANSIT_GATEWAY_ROUTE_TABLE" ] }, @@ -3073,6 +3134,46 @@ } } }, + "CreateDirectConnectGatewayAttachmentRequest":{ + "type":"structure", + "required":[ + "CoreNetworkId", + "DirectConnectGatewayArn", + "EdgeLocations" + ], + "members":{ + "CoreNetworkId":{ + "shape":"CoreNetworkId", + "documentation":"

The ID of the Cloud WAN core network that the Direct Connect gateway attachment should be attached to.

" + }, + "DirectConnectGatewayArn":{ + "shape":"DirectConnectGatewayArn", + "documentation":"

The ARN of the Direct Connect gateway attachment.

" + }, + "EdgeLocations":{ + "shape":"ExternalRegionCodeList", + "documentation":"

One or more core network edge locations that the Direct Connect gateway attachment is associated with.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The key value tags to apply to the Direct Connect gateway attachment during creation.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

client token

", + "idempotencyToken":true + } + } + }, + "CreateDirectConnectGatewayAttachmentResponse":{ + "type":"structure", + "members":{ + "DirectConnectGatewayAttachment":{ + "shape":"DirectConnectGatewayAttachment", + "documentation":"

Describes the details of a CreateDirectConnectGatewayAttachment request.

" + } + } + }, "CreateGlobalNetworkRequest":{ "type":"structure", "members":{ @@ -3805,6 +3906,23 @@ "UPDATING" ] }, + "DirectConnectGatewayArn":{ + "type":"string", + "max":500, + "min":0, + "pattern":"^arn:[^:]{1,63}:directconnect::[^:]{0,63}:dx-gateway\\/[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$" + }, + "DirectConnectGatewayAttachment":{ + "type":"structure", + "members":{ + "Attachment":{"shape":"Attachment"}, + "DirectConnectGatewayArn":{ + "shape":"DirectConnectGatewayArn", + "documentation":"

The Direct Connect gateway attachment ARN.

" + } + }, + "documentation":"

Describes a Direct Connect gateway attachment.

" + }, "DisassociateConnectPeerRequest":{ "type":"structure", "required":[ @@ -4388,6 +4506,27 @@ } } }, + "GetDirectConnectGatewayAttachmentRequest":{ + "type":"structure", + "required":["AttachmentId"], + "members":{ + "AttachmentId":{ + "shape":"AttachmentId", + "documentation":"

The ID of the Direct Connect gateway attachment that you want to see details about.

", + "location":"uri", + "locationName":"attachmentId" + } + } + }, + "GetDirectConnectGatewayAttachmentResponse":{ + "type":"structure", + "members":{ + "DirectConnectGatewayAttachment":{ + "shape":"DirectConnectGatewayAttachment", + "documentation":"

Shows details about the Direct Connect gateway attachment.

" + } + } + }, "GetLinkAssociationsRequest":{ "type":"structure", "required":["GlobalNetworkId"], @@ -7110,6 +7249,31 @@ } } }, + "UpdateDirectConnectGatewayAttachmentRequest":{ + "type":"structure", + "required":["AttachmentId"], + "members":{ + "AttachmentId":{ + "shape":"AttachmentId", + "documentation":"

The ID of the Direct Connect gateway attachment for the updated edge locations.

", + "location":"uri", + "locationName":"attachmentId" + }, + "EdgeLocations":{ + "shape":"ExternalRegionCodeList", + "documentation":"

One or more edge locations to update for the Direct Connect gateway attachment. The updated array of edge locations overwrites the previous array of locations. EdgeLocations is only used for Direct Connect gateway attachments. Do

" + } + } + }, + "UpdateDirectConnectGatewayAttachmentResponse":{ + "type":"structure", + "members":{ + "DirectConnectGatewayAttachment":{ + "shape":"DirectConnectGatewayAttachment", + "documentation":"

Returns details of the Direct Connect gateway attachment with the updated edge locations.

" + } + } + }, "UpdateGlobalNetworkRequest":{ "type":"structure", "required":["GlobalNetworkId"], diff --git a/botocore/data/s3/2006-03-01/service-2.json b/botocore/data/s3/2006-03-01/service-2.json index aaf68b83fe..d81fdbe0c6 100644 --- a/botocore/data/s3/2006-03-01/service-2.json +++ b/botocore/data/s3/2006-03-01/service-2.json @@ -1196,7 +1196,7 @@ }, "input":{"shape":"PutBucketVersioningRequest"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html", - "documentation":"

This operation is not supported for directory buckets.

When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (PUT or DELETE) on objects in the bucket.

Sets the versioning state of an existing bucket.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

The following operations are related to PutBucketVersioning:

", + "documentation":"

This operation is not supported for directory buckets.

When you enable versioning on a bucket for the first time, it might take a short amount of time for the change to be fully propagated. While this change is propagating, you may encounter intermittent HTTP 404 NoSuchKey errors for requests to objects created or updated after enabling versioning. We recommend that you wait for 15 minutes after enabling versioning before issuing write operations (PUT or DELETE) on objects in the bucket.

Sets the versioning state of an existing bucket.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

The following operations are related to PutBucketVersioning:

", "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true @@ -2169,6 +2169,12 @@ "location":"header", "locationName":"x-amz-expected-bucket-owner" }, + "IfMatch":{ + "shape":"IfMatch", + "documentation":"

Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a 412 Precondition Failed error.

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with CreateMultipartUpload, and re-upload each part.

Expects the ETag value as a string.

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", + "location":"header", + "locationName":"If-Match" + }, "IfNoneMatch":{ "shape":"IfNoneMatch", "documentation":"

Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should re-initiate the multipart upload with CreateMultipartUpload and re-upload each part.

Expects the '*' (asterisk) character.

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", @@ -9630,6 +9636,12 @@ "location":"header", "locationName":"Expires" }, + "IfMatch":{ + "shape":"IfMatch", + "documentation":"

Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a 412 Precondition Failed error.

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should fetch the object's ETag and retry the upload.

Expects the ETag value as a string.

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", + "location":"header", + "locationName":"If-Match" + }, "IfNoneMatch":{ "shape":"IfNoneMatch", "documentation":"

Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a 412 Precondition Failed error.

If a conflicting operation occurs during the upload S3 returns a 409 ConditionalRequestConflict response. On a 409 failure you should retry the upload.

Expects the '*' (asterisk) character.

For more information about conditional requests, see RFC 7232, or Conditional requests in the Amazon S3 User Guide.

", diff --git a/docs/source/conf.py b/docs/source/conf.py index c81876b68e..64d551b124 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.35.' # The full version, including alpha/beta/rc tags. -release = '1.35.68' +release = '1.35.69' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.