From 294f031c70a9120bea4a6e32ec9356c3cb6da908 Mon Sep 17 00:00:00 2001 From: Peter Song Date: Thu, 8 Aug 2024 14:59:49 -0700 Subject: [PATCH] Fix add _bcl and _netstandard folders to core to exclude some operations --- .../Services/S3/AWSSDK.S3.NetStandard.csproj | 10 +- .../S3/Custom/AmazonS3Client.Custom.cs | 6 +- .../Util/_bcl/AmazonS3Util.Operations.cs | 2 +- sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs | 333 ++++++++++++++++++ .../S3/Custom/_netstandard/IAmazonS3.cs | 333 ++++++++++++++++++ 5 files changed, 675 insertions(+), 9 deletions(-) create mode 100644 sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs create mode 100644 sdk/src/Services/S3/Custom/_netstandard/IAmazonS3.cs diff --git a/sdk/src/Services/S3/AWSSDK.S3.NetStandard.csproj b/sdk/src/Services/S3/AWSSDK.S3.NetStandard.csproj index 6a7518e34854..befd5d74ade0 100644 --- a/sdk/src/Services/S3/AWSSDK.S3.NetStandard.csproj +++ b/sdk/src/Services/S3/AWSSDK.S3.NetStandard.csproj @@ -62,16 +62,16 @@ - + - - + + - + @@ -82,8 +82,6 @@ all - - diff --git a/sdk/src/Services/S3/Custom/AmazonS3Client.Custom.cs b/sdk/src/Services/S3/Custom/AmazonS3Client.Custom.cs index 512dfd75910c..35df17561d36 100644 --- a/sdk/src/Services/S3/Custom/AmazonS3Client.Custom.cs +++ b/sdk/src/Services/S3/Custom/AmazonS3Client.Custom.cs @@ -5,17 +5,19 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Threading; + using Amazon.S3.Model; using Amazon.S3.Model.Internal.MarshallTransformations; using Amazon.Runtime.Internal; -using System.Threading; + #pragma warning disable CS1570 namespace Amazon.S3 { /// /// Custom S3Client to place deprecated operations. /// - public partial class AmazonS3Client + public partial class AmazonS3Client : AmazonServiceClient, IAmazonS3 { #region GetACL /// diff --git a/sdk/src/Services/S3/Custom/Util/_bcl/AmazonS3Util.Operations.cs b/sdk/src/Services/S3/Custom/Util/_bcl/AmazonS3Util.Operations.cs index 87e43fb478e1..19056ac16ba7 100644 --- a/sdk/src/Services/S3/Custom/Util/_bcl/AmazonS3Util.Operations.cs +++ b/sdk/src/Services/S3/Custom/Util/_bcl/AmazonS3Util.Operations.cs @@ -50,7 +50,7 @@ public static bool DoesS3BucketExistV2(IAmazonS3 s3Client, string bucketName) { try { - var response = s3Client.GetBucketAclAsync(new GetBucketAclRequest() { BucketName = bucketName}); + var response = s3Client.GetBucketAcl(new GetBucketAclRequest() { BucketName = bucketName}); } catch (AmazonS3Exception e) { diff --git a/sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs b/sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs new file mode 100644 index 000000000000..383d0d90019b --- /dev/null +++ b/sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using System.Threading; + +using Amazon.S3.Model; +namespace Amazon.S3 +{ +#pragma warning disable CS1591 + public partial interface IAmazonS3 + { + #region GetACL + [Obsolete("GetACL combines both GetBucketAcl and GetObjectAcl and is deprecated. Please use the separated GetObjectAcl and GetBucketAcl operations.")] + Task GetACLAsync(string bucketName, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); + + + /// + /// + /// + /// This operation is not supported by directory buckets. + /// + /// + /// + /// This implementation of the GET action uses the acl subresource to return + /// the access control list (ACL) of a bucket. To use GET to return the ACL of + /// the bucket, you must have the READ_ACP access to the bucket. If READ_ACP + /// permission is granted to the anonymous user, you can return the ACL of the bucket + /// without using an authorization header. + /// + /// + /// + /// When you use this API operation with an access point, provide the alias of the access + /// point in place of the bucket name. + /// + /// + /// + /// When you use this API operation with an Object Lambda access point, provide the alias + /// of the Object Lambda access point in place of the bucket name. If the Object Lambda + /// access point alias in a request is not valid, the error code InvalidAccessPointAliasError + /// is returned. For more information about InvalidAccessPointAliasError, see List + /// of Error Codes. + /// + /// + /// + /// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests + /// to read ACLs are still supported and return the bucket-owner-full-control ACL + /// with the owner being the account that created the bucket. For more information, see + /// + /// Controlling object ownership and disabling ACLs in the Amazon S3 User Guide. + /// + /// + /// + /// The following operations are related to GetBucketAcl: + /// + /// + /// + /// Container for the necessary parameters to execute the GetACL service method. + /// + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// + /// The response from the GetACL service method, as returned by S3. + /// REST API Reference for GetACL Operation + [Obsolete("GetACL combines both GetBucketAcl and GetObjectAcl and is deprecated. Please use the separated GetObjectAcl and GetBucketAcl operations.")] + Task GetACLAsync(GetACLRequest request, CancellationToken cancellationToken = default(CancellationToken)); + #endregion + #region PutACL + /// + /// + /// + /// This operation is not supported by directory buckets. + /// + /// + /// + /// Sets the permissions on an existing bucket using access control lists (ACL). For more + /// information, see Using + /// ACLs. To set the ACL of a bucket, you must have the WRITE_ACP permission. + /// + /// + /// + /// You can use one of the following two ways to set a bucket's permissions: + /// + ///
  • + /// + /// Specify the ACL in the request body + /// + ///
  • + /// + /// Specify permissions using request headers + /// + ///
+ /// + /// You cannot specify access permission using both the body and the request headers. + /// + /// + /// + /// Depending on your application needs, you may choose to set the ACL on a bucket using + /// either the request body or the headers. For example, if you have an existing application + /// that updates a bucket ACL using the request body, then you can continue to use that + /// approach. + /// + /// + /// + /// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs + /// are disabled and no longer affect permissions. You must use policies to grant access + /// to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and + /// return the AccessControlListNotSupported error code. Requests to read ACLs + /// are still supported. For more information, see Controlling + /// object ownership in the Amazon S3 User Guide. + /// + ///
Permissions
+ /// + /// You can set access permissions by using one of the following methods: + /// + ///
  • + /// + /// Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports + /// a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined + /// set of grantees and permissions. Specify the canned ACL name as the value of x-amz-acl. + /// If you use this header, you cannot use other access control-specific headers in your + /// request. For more information, see Canned + /// ACL. + /// + ///
  • + /// + /// Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, + /// x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using + /// these headers, you specify explicit access permissions and grantees (Amazon Web Services + /// accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific + /// headers, you cannot use the x-amz-acl header to set a canned ACL. These parameters + /// map to the set of permissions that Amazon S3 supports in an ACL. For more information, + /// see Access + /// Control List (ACL) Overview. + /// + /// + /// + /// You specify each grantee as a type=value pair, where the type is one of the following: + /// + ///
    • + /// + /// id – if the value specified is the canonical user ID of an Amazon Web Services + /// account + /// + ///
    • + /// + /// uri – if you are granting permissions to a predefined group + /// + ///
    • + /// + /// emailAddress – if the value specified is the email address of an Amazon Web + /// Services account + /// + /// + /// + /// Using email addresses to specify a grantee is only supported in the following Amazon + /// Web Services Regions: + /// + ///
      • + /// + /// US East (N. Virginia) + /// + ///
      • + /// + /// US West (N. California) + /// + ///
      • + /// + /// US West (Oregon) + /// + ///
      • + /// + /// Asia Pacific (Singapore) + /// + ///
      • + /// + /// Asia Pacific (Sydney) + /// + ///
      • + /// + /// Asia Pacific (Tokyo) + /// + ///
      • + /// + /// Europe (Ireland) + /// + ///
      • + /// + /// South America (São Paulo) + /// + ///
      + /// + /// For a list of all the Amazon S3 supported Regions and endpoints, see Regions + /// and Endpoints in the Amazon Web Services General Reference. + /// + ///
    + /// + /// For example, the following x-amz-grant-write header grants create, overwrite, + /// and delete objects permission to LogDelivery group predefined by Amazon S3 and two + /// Amazon Web Services accounts identified by their email addresses. + /// + /// + /// + /// x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", + /// id="555566667777" + /// + ///
+ /// + /// You can use either a canned ACL or specify access permissions explicitly. You cannot + /// do both. + /// + ///
Grantee Values
+ /// + /// You can specify the person (grantee) to whom you're assigning access rights (using + /// request elements) in the following ways: + /// + ///
  • + /// + /// By the person's ID: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> + /// </Grantee> + /// + /// + /// + /// DisplayName is optional and ignored in the request + /// + ///
  • + /// + /// By URI: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee> + /// + /// + ///
  • + /// + /// By Email address: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>&</Grantee> + /// + /// + /// + /// + /// The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl + /// request, appears as the CanonicalUser. + /// + /// + /// + /// Using email addresses to specify a grantee is only supported in the following Amazon + /// Web Services Regions: + /// + ///
    • + /// + /// US East (N. Virginia) + /// + ///
    • + /// + /// US West (N. California) + /// + ///
    • + /// + /// US West (Oregon) + /// + ///
    • + /// + /// Asia Pacific (Singapore) + /// + ///
    • + /// + /// Asia Pacific (Sydney) + /// + ///
    • + /// + /// Asia Pacific (Tokyo) + /// + ///
    • + /// + /// Europe (Ireland) + /// + ///
    • + /// + /// South America (São Paulo) + /// + ///
    + /// + /// For a list of all the Amazon S3 supported Regions and endpoints, see Regions + /// and Endpoints in the Amazon Web Services General Reference. + /// + ///
+ /// + /// The following operations are related to PutBucketAcl: + /// + /// + ///
+ /// Container for the necessary parameters to execute the PutACL service method. + /// + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// + /// The response from the PutACL service method, as returned by S3. + /// REST API Reference for PutACL Operation + [Obsolete("PutACL combines both PutBucketAcl and PutObjectAcl and is deprecated. Please use the separated PutObjectAcl and PutBucketAcl operations.")] + Task PutACLAsync(PutACLRequest request, CancellationToken cancellationToken = default(CancellationToken)); + #endregion + } +} diff --git a/sdk/src/Services/S3/Custom/_netstandard/IAmazonS3.cs b/sdk/src/Services/S3/Custom/_netstandard/IAmazonS3.cs new file mode 100644 index 000000000000..383d0d90019b --- /dev/null +++ b/sdk/src/Services/S3/Custom/_netstandard/IAmazonS3.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using System.Threading; + +using Amazon.S3.Model; +namespace Amazon.S3 +{ +#pragma warning disable CS1591 + public partial interface IAmazonS3 + { + #region GetACL + [Obsolete("GetACL combines both GetBucketAcl and GetObjectAcl and is deprecated. Please use the separated GetObjectAcl and GetBucketAcl operations.")] + Task GetACLAsync(string bucketName, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); + + + /// + /// + /// + /// This operation is not supported by directory buckets. + /// + /// + /// + /// This implementation of the GET action uses the acl subresource to return + /// the access control list (ACL) of a bucket. To use GET to return the ACL of + /// the bucket, you must have the READ_ACP access to the bucket. If READ_ACP + /// permission is granted to the anonymous user, you can return the ACL of the bucket + /// without using an authorization header. + /// + /// + /// + /// When you use this API operation with an access point, provide the alias of the access + /// point in place of the bucket name. + /// + /// + /// + /// When you use this API operation with an Object Lambda access point, provide the alias + /// of the Object Lambda access point in place of the bucket name. If the Object Lambda + /// access point alias in a request is not valid, the error code InvalidAccessPointAliasError + /// is returned. For more information about InvalidAccessPointAliasError, see List + /// of Error Codes. + /// + /// + /// + /// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests + /// to read ACLs are still supported and return the bucket-owner-full-control ACL + /// with the owner being the account that created the bucket. For more information, see + /// + /// Controlling object ownership and disabling ACLs in the Amazon S3 User Guide. + /// + /// + /// + /// The following operations are related to GetBucketAcl: + /// + /// + /// + /// Container for the necessary parameters to execute the GetACL service method. + /// + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// + /// The response from the GetACL service method, as returned by S3. + /// REST API Reference for GetACL Operation + [Obsolete("GetACL combines both GetBucketAcl and GetObjectAcl and is deprecated. Please use the separated GetObjectAcl and GetBucketAcl operations.")] + Task GetACLAsync(GetACLRequest request, CancellationToken cancellationToken = default(CancellationToken)); + #endregion + #region PutACL + /// + /// + /// + /// This operation is not supported by directory buckets. + /// + /// + /// + /// Sets the permissions on an existing bucket using access control lists (ACL). For more + /// information, see Using + /// ACLs. To set the ACL of a bucket, you must have the WRITE_ACP permission. + /// + /// + /// + /// You can use one of the following two ways to set a bucket's permissions: + /// + ///
  • + /// + /// Specify the ACL in the request body + /// + ///
  • + /// + /// Specify permissions using request headers + /// + ///
+ /// + /// You cannot specify access permission using both the body and the request headers. + /// + /// + /// + /// Depending on your application needs, you may choose to set the ACL on a bucket using + /// either the request body or the headers. For example, if you have an existing application + /// that updates a bucket ACL using the request body, then you can continue to use that + /// approach. + /// + /// + /// + /// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs + /// are disabled and no longer affect permissions. You must use policies to grant access + /// to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and + /// return the AccessControlListNotSupported error code. Requests to read ACLs + /// are still supported. For more information, see Controlling + /// object ownership in the Amazon S3 User Guide. + /// + ///
Permissions
+ /// + /// You can set access permissions by using one of the following methods: + /// + ///
  • + /// + /// Specify a canned ACL with the x-amz-acl request header. Amazon S3 supports + /// a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined + /// set of grantees and permissions. Specify the canned ACL name as the value of x-amz-acl. + /// If you use this header, you cannot use other access control-specific headers in your + /// request. For more information, see Canned + /// ACL. + /// + ///
  • + /// + /// Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, + /// x-amz-grant-write-acp, and x-amz-grant-full-control headers. When using + /// these headers, you specify explicit access permissions and grantees (Amazon Web Services + /// accounts or Amazon S3 groups) who will receive the permission. If you use these ACL-specific + /// headers, you cannot use the x-amz-acl header to set a canned ACL. These parameters + /// map to the set of permissions that Amazon S3 supports in an ACL. For more information, + /// see Access + /// Control List (ACL) Overview. + /// + /// + /// + /// You specify each grantee as a type=value pair, where the type is one of the following: + /// + ///
    • + /// + /// id – if the value specified is the canonical user ID of an Amazon Web Services + /// account + /// + ///
    • + /// + /// uri – if you are granting permissions to a predefined group + /// + ///
    • + /// + /// emailAddress – if the value specified is the email address of an Amazon Web + /// Services account + /// + /// + /// + /// Using email addresses to specify a grantee is only supported in the following Amazon + /// Web Services Regions: + /// + ///
      • + /// + /// US East (N. Virginia) + /// + ///
      • + /// + /// US West (N. California) + /// + ///
      • + /// + /// US West (Oregon) + /// + ///
      • + /// + /// Asia Pacific (Singapore) + /// + ///
      • + /// + /// Asia Pacific (Sydney) + /// + ///
      • + /// + /// Asia Pacific (Tokyo) + /// + ///
      • + /// + /// Europe (Ireland) + /// + ///
      • + /// + /// South America (São Paulo) + /// + ///
      + /// + /// For a list of all the Amazon S3 supported Regions and endpoints, see Regions + /// and Endpoints in the Amazon Web Services General Reference. + /// + ///
    + /// + /// For example, the following x-amz-grant-write header grants create, overwrite, + /// and delete objects permission to LogDelivery group predefined by Amazon S3 and two + /// Amazon Web Services accounts identified by their email addresses. + /// + /// + /// + /// x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333", + /// id="555566667777" + /// + ///
+ /// + /// You can use either a canned ACL or specify access permissions explicitly. You cannot + /// do both. + /// + ///
Grantee Values
+ /// + /// You can specify the person (grantee) to whom you're assigning access rights (using + /// request elements) in the following ways: + /// + ///
  • + /// + /// By the person's ID: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName> + /// </Grantee> + /// + /// + /// + /// DisplayName is optional and ignored in the request + /// + ///
  • + /// + /// By URI: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee> + /// + /// + ///
  • + /// + /// By Email address: + /// + /// + /// + /// <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>&</Grantee> + /// + /// + /// + /// + /// The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl + /// request, appears as the CanonicalUser. + /// + /// + /// + /// Using email addresses to specify a grantee is only supported in the following Amazon + /// Web Services Regions: + /// + ///
    • + /// + /// US East (N. Virginia) + /// + ///
    • + /// + /// US West (N. California) + /// + ///
    • + /// + /// US West (Oregon) + /// + ///
    • + /// + /// Asia Pacific (Singapore) + /// + ///
    • + /// + /// Asia Pacific (Sydney) + /// + ///
    • + /// + /// Asia Pacific (Tokyo) + /// + ///
    • + /// + /// Europe (Ireland) + /// + ///
    • + /// + /// South America (São Paulo) + /// + ///
    + /// + /// For a list of all the Amazon S3 supported Regions and endpoints, see Regions + /// and Endpoints in the Amazon Web Services General Reference. + /// + ///
+ /// + /// The following operations are related to PutBucketAcl: + /// + /// + ///
+ /// Container for the necessary parameters to execute the PutACL service method. + /// + /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. + /// + /// + /// The response from the PutACL service method, as returned by S3. + /// REST API Reference for PutACL Operation + [Obsolete("PutACL combines both PutBucketAcl and PutObjectAcl and is deprecated. Please use the separated PutObjectAcl and PutBucketAcl operations.")] + Task PutACLAsync(PutACLRequest request, CancellationToken cancellationToken = default(CancellationToken)); + #endregion + } +}