Skip to content

Commit

Permalink
Fix add _bcl and _netstandard folders to core to exclude some operations
Browse files Browse the repository at this point in the history
  • Loading branch information
peterrsongg committed Aug 8, 2024
1 parent 577d3cc commit 294f031
Show file tree
Hide file tree
Showing 5 changed files with 675 additions and 9 deletions.
10 changes: 4 additions & 6 deletions sdk/src/Services/S3/AWSSDK.S3.NetStandard.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,16 @@
</Choose>

<ItemGroup Condition="$(RunAnalyzersDuringBuild)">
<Analyzer Include= "../../../../buildtools/CustomRoslynAnalyzers.dll" />
<Analyzer Include="../../../../buildtools/CustomRoslynAnalyzers.dll" />
</ItemGroup>
<ItemGroup>
<Compile Remove="**/_bcl/**"/>
<Compile Remove="**/obj/**"/>
<Compile Remove="**/_bcl/**" />
<Compile Remove="**/obj/**" />
<None Remove="**/obj/**" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="../../Core/AWSSDK.Core.NetStandard.csproj"/>
<ProjectReference Include="../../Core/AWSSDK.Core.NetStandard.csproj" />
</ItemGroup>

<ItemGroup Condition="$(RunAnalyzersDuringBuild)">
Expand All @@ -82,8 +82,6 @@
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
</ItemGroup>

<ItemGroup>
</ItemGroup>
Expand Down
6 changes: 4 additions & 2 deletions sdk/src/Services/S3/Custom/AmazonS3Client.Custom.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
/// <summary>
/// <para>Custom S3Client to place deprecated operations.</para>
/// </summary>
public partial class AmazonS3Client
public partial class AmazonS3Client : AmazonServiceClient, IAmazonS3
{
#region GetACL
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
333 changes: 333 additions & 0 deletions sdk/src/Services/S3/Custom/_bcl/IAmazonS3.cs
Original file line number Diff line number Diff line change
@@ -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<GetACLResponse> GetACLAsync(string bucketName, System.Threading.CancellationToken cancellationToken = default(CancellationToken));


/// <summary>
/// <note>
/// <para>
/// This operation is not supported by directory buckets.
/// </para>
/// </note>
/// <para>
/// This implementation of the <c>GET</c> action uses the <c>acl</c> subresource to return
/// the access control list (ACL) of a bucket. To use <c>GET</c> to return the ACL of
/// the bucket, you must have the <c>READ_ACP</c> access to the bucket. If <c>READ_ACP</c>
/// permission is granted to the anonymous user, you can return the ACL of the bucket
/// without using an authorization header.
/// </para>
///
/// <para>
/// When you use this API operation with an access point, provide the alias of the access
/// point in place of the bucket name.
/// </para>
///
/// <para>
/// 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 <c>InvalidAccessPointAliasError</c>
/// is returned. For more information about <c>InvalidAccessPointAliasError</c>, see <a
/// href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List
/// of Error Codes</a>.
/// </para>
/// <note>
/// <para>
/// If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests
/// to read ACLs are still supported and return the <c>bucket-owner-full-control</c> ACL
/// with the owner being the account that created the bucket. For more information, see
/// <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">
/// Controlling object ownership and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.
/// </para>
/// </note>
/// <para>
/// The following operations are related to <c>GetBucketAcl</c>:
/// </para>
/// <ul> <li>
/// <para>
/// <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>
///
/// </para>
/// </li> </ul>
/// </summary>
/// <param name="request">Container for the necessary parameters to execute the GetACL service method.</param>
/// <param name="cancellationToken">
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
/// </param>
///
/// <returns>The response from the GetACL service method, as returned by S3.</returns>
/// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAcl">REST API Reference for GetACL Operation</seealso>
[Obsolete("GetACL combines both GetBucketAcl and GetObjectAcl and is deprecated. Please use the separated GetObjectAcl and GetBucketAcl operations.")]
Task<GetACLResponse> GetACLAsync(GetACLRequest request, CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region PutACL
/// <summary>
/// <note>
/// <para>
/// This operation is not supported by directory buckets.
/// </para>
/// </note>
/// <para>
/// Sets the permissions on an existing bucket using access control lists (ACL). For more
/// information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using
/// ACLs</a>. To set the ACL of a bucket, you must have the <c>WRITE_ACP</c> permission.
/// </para>
///
/// <para>
/// You can use one of the following two ways to set a bucket's permissions:
/// </para>
/// <ul> <li>
/// <para>
/// Specify the ACL in the request body
/// </para>
/// </li> <li>
/// <para>
/// Specify permissions using request headers
/// </para>
/// </li> </ul> <note>
/// <para>
/// You cannot specify access permission using both the body and the request headers.
/// </para>
/// </note>
/// <para>
/// 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.
/// </para>
/// <important>
/// <para>
/// 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 <c>AccessControlListNotSupported</c> error code. Requests to read ACLs
/// are still supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling
/// object ownership</a> in the <i>Amazon S3 User Guide</i>.
/// </para>
/// </important> <dl> <dt>Permissions</dt> <dd>
/// <para>
/// You can set access permissions by using one of the following methods:
/// </para>
/// <ul> <li>
/// <para>
/// Specify a canned ACL with the <c>x-amz-acl</c> request header. Amazon S3 supports
/// a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL has a predefined
/// set of grantees and permissions. Specify the canned ACL name as the value of <c>x-amz-acl</c>.
/// If you use this header, you cannot use other access control-specific headers in your
/// request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
/// ACL</a>.
/// </para>
/// </li> <li>
/// <para>
/// Specify access permissions explicitly with the <c>x-amz-grant-read</c>, <c>x-amz-grant-read-acp</c>,
/// <c>x-amz-grant-write-acp</c>, and <c>x-amz-grant-full-control</c> 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 <c>x-amz-acl</c> 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 <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access
/// Control List (ACL) Overview</a>.
/// </para>
///
/// <para>
/// You specify each grantee as a type=value pair, where the type is one of the following:
/// </para>
/// <ul> <li>
/// <para>
/// <c>id</c> – if the value specified is the canonical user ID of an Amazon Web Services
/// account
/// </para>
/// </li> <li>
/// <para>
/// <c>uri</c> – if you are granting permissions to a predefined group
/// </para>
/// </li> <li>
/// <para>
/// <c>emailAddress</c> – if the value specified is the email address of an Amazon Web
/// Services account
/// </para>
/// <note>
/// <para>
/// Using email addresses to specify a grantee is only supported in the following Amazon
/// Web Services Regions:
/// </para>
/// <ul> <li>
/// <para>
/// US East (N. Virginia)
/// </para>
/// </li> <li>
/// <para>
/// US West (N. California)
/// </para>
/// </li> <li>
/// <para>
/// US West (Oregon)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Singapore)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Sydney)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Tokyo)
/// </para>
/// </li> <li>
/// <para>
/// Europe (Ireland)
/// </para>
/// </li> <li>
/// <para>
/// South America (São Paulo)
/// </para>
/// </li> </ul>
/// <para>
/// For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
/// and Endpoints</a> in the Amazon Web Services General Reference.
/// </para>
/// </note> </li> </ul>
/// <para>
/// For example, the following <c>x-amz-grant-write</c> 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.
/// </para>
///
/// <para>
/// <c>x-amz-grant-write: uri="http://acs.amazonaws.com/groups/s3/LogDelivery", id="111122223333",
/// id="555566667777" </c>
/// </para>
/// </li> </ul>
/// <para>
/// You can use either a canned ACL or specify access permissions explicitly. You cannot
/// do both.
/// </para>
/// </dd> <dt>Grantee Values</dt> <dd>
/// <para>
/// You can specify the person (grantee) to whom you're assigning access rights (using
/// request elements) in the following ways:
/// </para>
/// <ul> <li>
/// <para>
/// By the person's ID:
/// </para>
///
/// <para>
/// <c>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"&gt;&lt;ID&gt;&lt;&gt;ID&lt;&gt;&lt;/ID&gt;&lt;DisplayName&gt;&lt;&gt;GranteesEmail&lt;&gt;&lt;/DisplayName&gt;
/// &lt;/Grantee&gt;</c>
/// </para>
///
/// <para>
/// DisplayName is optional and ignored in the request
/// </para>
/// </li> <li>
/// <para>
/// By URI:
/// </para>
///
/// <para>
/// <c>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"&gt;&lt;URI&gt;&lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;&lt;/URI&gt;&lt;/Grantee&gt;</c>
///
/// </para>
/// </li> <li>
/// <para>
/// By Email address:
/// </para>
///
/// <para>
/// <c>&lt;Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"&gt;&lt;EmailAddress&gt;&lt;&gt;[email protected]&lt;&gt;&lt;/EmailAddress&gt;&amp;&lt;/Grantee&gt;</c>
///
/// </para>
///
/// <para>
/// The grantee is resolved to the CanonicalUser and, in a response to a GET Object acl
/// request, appears as the CanonicalUser.
/// </para>
/// <note>
/// <para>
/// Using email addresses to specify a grantee is only supported in the following Amazon
/// Web Services Regions:
/// </para>
/// <ul> <li>
/// <para>
/// US East (N. Virginia)
/// </para>
/// </li> <li>
/// <para>
/// US West (N. California)
/// </para>
/// </li> <li>
/// <para>
/// US West (Oregon)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Singapore)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Sydney)
/// </para>
/// </li> <li>
/// <para>
/// Asia Pacific (Tokyo)
/// </para>
/// </li> <li>
/// <para>
/// Europe (Ireland)
/// </para>
/// </li> <li>
/// <para>
/// South America (São Paulo)
/// </para>
/// </li> </ul>
/// <para>
/// For a list of all the Amazon S3 supported Regions and endpoints, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions
/// and Endpoints</a> in the Amazon Web Services General Reference.
/// </para>
/// </note> </li> </ul> </dd> </dl>
/// <para>
/// The following operations are related to <c>PutBucketAcl</c>:
/// </para>
/// <ul> <li>
/// <para>
/// <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>
///
/// </para>
/// </li> <li>
/// <para>
/// <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a>
///
/// </para>
/// </li> <li>
/// <para>
/// <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a>
///
/// </para>
/// </li> </ul>
/// </summary>
/// <param name="request">Container for the necessary parameters to execute the PutACL service method.</param>
/// <param name="cancellationToken">
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
/// </param>
///
/// <returns>The response from the PutACL service method, as returned by S3.</returns>
/// <seealso href="http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAcl">REST API Reference for PutACL Operation</seealso>
[Obsolete("PutACL combines both PutBucketAcl and PutObjectAcl and is deprecated. Please use the separated PutObjectAcl and PutBucketAcl operations.")]
Task<PutACLResponse> PutACLAsync(PutACLRequest request, CancellationToken cancellationToken = default(CancellationToken));
#endregion
}
}
Loading

0 comments on commit 294f031

Please sign in to comment.