import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement , Operator } from '../shared' ; param sid export class S3Outposts extends PolicyStatement { public servicePrefix = 's3-outposts' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to abort a multipart upload
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifDataAccessPointArn()
     * - .ifDataAccessPointAccount()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
     */ public toAbortMultipartUpload ( ) { return this . to ( 'AbortMultipartUpload' ) ; } /**
     * Grants permission to create a new access point
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html
     */ public toCreateAccessPoint ( ) { return this . to ( 'CreateAccessPoint' ) ; } /**
     * Grants permission to create a new bucket
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html
     */ public toCreateBucket ( ) { return this . to ( 'CreateBucket' ) ; } /**
     * Grants permission to create a new endpoint
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html
     */ public toCreateEndpoint ( ) { return this . to ( 'CreateEndpoint' ) ; } /**
     * Grants permission to delete the access point named in the URI
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifDataAccessPointArn()
     * - .ifDataAccessPointAccount()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html
     */ public toDeleteAccessPoint ( ) { return this . to ( 'DeleteAccessPoint' ) ; } /**
     * Grants permission to delete the policy on a specified access point
     *
     * Access Level: Permissions management
     *
     * Possible conditions:
     * - .ifDataAccessPointArn()
     * - .ifDataAccessPointAccount()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html
     */ public toDeleteAccessPointPolicy ( ) { return this . to ( 'DeleteAccessPointPolicy' ) ; } /**
     * Grants permission to delete the bucket named in the URI
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucket.html
     */ public toDeleteBucket ( ) { return this . to ( 'DeleteBucket' ) ; } /**
     * Grants permission to delete the policy on a specified bucket
     *
     * Access Level: Permissions management
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html
     */ public toDeleteBucketPolicy ( ) { return this . to ( 'DeleteBucketPolicy' ) ; } /**
     * Grants permission to delete the endpoint named in the URI
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html
     */ public toDeleteEndpoint ( ) { return this . to ( 'DeleteEndpoint' ) ; } /**
     * Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html
     */ public toDeleteObject ( ) { return this . to ( 'DeleteObject' ) ; } /**
     * Grants permission to use the tagging subresource to remove the entire tag set from the specified object
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifExistingObjectTag()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html
     */ public toDeleteObjectTagging ( ) { return this . to ( 'DeleteObjectTagging' ) ; } /**
     * Grants permission to return configuration information about the specified access point
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html
     */ public toGetAccessPoint ( ) { return this . to ( 'GetAccessPoint' ) ; } /**
     * Grants permission to returns the access point policy associated with the specified access point
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html
     */ public toGetAccessPointPolicy ( ) { return this . to ( 'GetAccessPointPolicy' ) ; } /**
     * Grants permission to return the bucket configuration associated with an Amazon S3 bucket
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html
     */ public toGetBucket ( ) { return this . to ( 'GetBucket' ) ; } /**
     * Grants permission to return the policy of the specified bucket
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html
     */ public toGetBucketPolicy ( ) { return this . to ( 'GetBucketPolicy' ) ; } /**
     * Grants permission to return the tag set associated with an Amazon S3 bucket
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html
     */ public toGetBucketTagging ( ) { return this . to ( 'GetBucketTagging' ) ; } /**
     * Grants permission to return the lifecycle configuration information set on an Amazon S3 bucket
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html
     */ public toGetLifecycleConfiguration ( ) { return this . to ( 'GetLifecycleConfiguration' ) ; } /**
     * Grants permission to retrieve objects from Amazon S3
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifExistingObjectTag()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
     */ public toGetObject ( ) { return this . to ( 'GetObject' ) ; } /**
     * Grants permission to return the tag set of an object
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifExistingObjectTag()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
     */ public toGetObjectTagging ( ) { return this . to ( 'GetObjectTagging' ) ; } /**
     * Grants permission to list access points
     *
     * Access Level: List
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html
     */ public toListAccessPoints ( ) { return this . to ( 'ListAccessPoints' ) ; } /**
     * Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)
     *
     * Access Level: List
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifDelimiter()
     * - .ifMaxKeys()
     * - .ifPrefix()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
     */ public toListBucket ( ) { return this . to ( 'ListBucket' ) ; } /**
     * Grants permission to list in-progress multipart uploads
     *
     * Access Level: List
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
     */ public toListBucketMultipartUploads ( ) { return this . to ( 'ListBucketMultipartUploads' ) ; } /**
     * Grants permission to list endpoints
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html
     */ public toListEndpoints ( ) { return this . to ( 'ListEndpoints' ) ; } /**
     * Grants permission to list the parts that have been uploaded for a specific multipart upload
     *
     * Access Level: List
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
     */ public toListMultipartUploadParts ( ) { return this . to ( 'ListMultipartUploadParts' ) ; } /**
     * Grants permission to list all buckets owned by the authenticated sender of the request
     *
     * Access Level: List
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListRegionalBuckets.html
     */ public toListRegionalBuckets ( ) { return this . to ( 'ListRegionalBuckets' ) ; } /**
     * Grants permission to associate an access policy with a specified access point
     *
     * Access Level: Permissions management
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html
     */ public toPutAccessPointPolicy ( ) { return this . to ( 'PutAccessPointPolicy' ) ; } /**
     * Grants permission to add or replace a bucket policy on a bucket
     *
     * Access Level: Permissions management
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html
     */ public toPutBucketPolicy ( ) { return this . to ( 'PutBucketPolicy' ) ; } /**
     * Grants permission to add a set of tags to an existing Amazon S3 bucket
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html
     */ public toPutBucketTagging ( ) { return this . to ( 'PutBucketTagging' ) ; } /**
     * Grants permission to create a new lifecycle configuration for the bucket or replace an existing lifecycle configuration
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html
     */ public toPutLifecycleConfiguration ( ) { return this . to ( 'PutLifecycleConfiguration' ) ; } /**
     * Grants permission to add an object to a bucket
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifRequestObjectTag()
     * - .ifRequestObjectTagKeys()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzAcl()
     * - .ifXAmzContentSha256()
     * - .ifXAmzCopySource()
     * - .ifXAmzMetadataDirective()
     * - .ifXAmzServerSideEncryption()
     * - .ifXAmzStorageClass()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
     */ public toPutObject ( ) { return this . to ( 'PutObject' ) ; } /**
     * Grants permission to set the access control list (ACL) permissions for an object that already exists in a bucket
     *
     * Access Level: Permissions management
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifExistingObjectTag()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzAcl()
     * - .ifXAmzContentSha256()
     * - .ifXAmzStorageClass()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html
     */ public toPutObjectAcl ( ) { return this . to ( 'PutObjectAcl' ) ; } /**
     * Grants permission to set the supplied tag-set to an object that already exists in a bucket
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifDataAccessPointAccount()
     * - .ifDataAccessPointArn()
     * - .ifAccessPointNetworkOrigin()
     * - .ifExistingObjectTag()
     * - .ifRequestObjectTag()
     * - .ifRequestObjectTagKeys()
     * - .ifAuthType()
     * - .ifSignatureAge()
     * - .ifSignatureversion()
     * - .ifXAmzContentSha256()
     *
     * https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html
     */ public toPutObjectTagging ( ) { return this . to ( 'PutObjectTagging' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'AbortMultipartUpload' , 'CreateAccessPoint' , 'CreateBucket' , 'CreateEndpoint' , 'DeleteAccessPoint' , 'DeleteBucket' , 'DeleteEndpoint' , 'DeleteObject' , 'PutLifecycleConfiguration' , 'PutObject' ] , 'Permissions management' : [ 'DeleteAccessPointPolicy' , 'DeleteBucketPolicy' , 'PutAccessPointPolicy' , 'PutBucketPolicy' , 'PutObjectAcl' ] , Tagging : [ 'DeleteObjectTagging' , 'PutBucketTagging' , 'PutObjectTagging' ] , Read : [ 'GetAccessPoint' , 'GetAccessPointPolicy' , 'GetBucket' , 'GetBucketPolicy' , 'GetBucketTagging' , 'GetLifecycleConfiguration' , 'GetObject' , 'GetObjectTagging' ] , List : [ 'ListAccessPoints' , 'ListBucket' , 'ListBucketMultipartUploads' , 'ListEndpoints' , 'ListMultipartUploadParts' , 'ListRegionalBuckets' ] } ; param outpostId param accessPointName param account param region param partition public onAccesspoint ( outpostId , accessPointName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:s3-outposts:${ region || '*' }:${ account || '*' }:outpost/${ outpostId }/accesspoint/${ accessPointName }` ) ; } param outpostId param bucketName param account param region param partition public onBucket ( outpostId , bucketName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:s3-outposts:${ region || '*' }:${ account || '*' }:outpost/${ outpostId }/bucket/${ bucketName }` ) ; } param outpostId param endpointId param account param region param partition public onEndpoint ( outpostId , endpointId , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:s3-outposts:${ region || '*' }:${ account || '*' }:outpost/${ outpostId }/endpoint/${ endpointId }` ) ; } param outpostId param bucketName param objectName param account param region param partition public onObject ( outpostId , bucketName , objectName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:s3-outposts:${ region || '*' }:${ account || '*' }:outpost/${ outpostId }/bucket/${ bucketName }/object/${ objectName }` ) ; } param value param operator public ifAccessPointNetworkOrigin ( value , operator ? ) { return this . if ( `AccessPointNetworkOrigin` , value , operator || 'StringLike' ) ; } param value param operator public ifDataAccessPointAccount ( value , operator ? ) { return this . if ( `DataAccessPointAccount` , value , operator || 'StringLike' ) ; } param value param operator public ifDataAccessPointArn ( value , operator ? ) { return this . if ( `DataAccessPointArn` , value , operator || 'StringLike' ) ; } param key param value param operator public ifExistingObjectTag ( key , value , operator ? ) { return this . if ( `ExistingObjectTag/${ key }` , value , operator || 'StringLike' ) ; } param key param value param operator public ifRequestObjectTag ( key , value , operator ? ) { return this . if ( `RequestObjectTag/${ key }` , value , operator || 'StringLike' ) ; } param value param operator public ifRequestObjectTagKeys ( value , operator ? ) { return this . if ( `RequestObjectTagKeys` , value , operator || 'StringLike' ) ; } param value param operator public ifAuthType ( value , operator ? ) { return this . if ( `authType` , value , operator || 'StringLike' ) ; } param value param operator public ifDelimiter ( value , operator ? ) { return this . if ( `delimiter` , value , operator || 'StringLike' ) ; } param value param operator public ifMaxKeys ( value , operator ? ) { return this . if ( `max-keys` , value , operator || 'NumericEquals' ) ; } param value param operator public ifPrefix ( value , operator ? ) { return this . if ( `prefix` , value , operator || 'StringLike' ) ; } param value param operator public ifSignatureAge ( value , operator ? ) { return this . if ( `signatureAge` , value , operator || 'NumericEquals' ) ; } param value param operator public ifSignatureversion ( value , operator ? ) { return this . if ( `signatureversion` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzAcl ( value , operator ? ) { return this . if ( `x-amz-acl` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzContentSha256 ( value , operator ? ) { return this . if ( `x-amz-content-sha256` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzCopySource ( value , operator ? ) { return this . if ( `x-amz-copy-source` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzMetadataDirective ( value , operator ? ) { return this . if ( `x-amz-metadata-directive` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzServerSideEncryption ( value , operator ? ) { return this . if ( `x-amz-server-side-encryption` , value , operator || 'StringLike' ) ; } param value param operator public ifXAmzStorageClass ( value , operator ? ) { return this . if ( `x-amz-storage-class` , value , operator || 'StringLike' ) ; } }