@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS S3 Control
@version 2018-08-20
@auth AWS SigV4
@endpoints 93
@hint download_for_search
@toc accessgrantsinstance(20), accesspoint(8), accesspointforobjectlambda(10), bucket(18), jobs(8), async-requests(4), storagelensgroup(5), configuration(3), storagelens(7), mrap(6), accessgrantsinstances(1), tags(3)

@group accessgrantsinstance
@endpoint POST /v20180820/accessgrantsinstance/identitycenter
@required {x-amz-account-id: str, IdentityCenterArn: str}

@endpoint POST /v20180820/accessgrantsinstance/grant
@required {x-amz-account-id: str, AccessGrantsLocationId: str, Grantee: Grantee, Permission: str}
@optional {AccessGrantsLocationConfiguration: AccessGrantsLocationConfiguration, ApplicationArn: str, S3PrefixType: str, Tags: [Tag]}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantId: str?, AccessGrantArn: str?, Grantee: Grantee?{GranteeType: str?, GranteeIdentifier: str?}, AccessGrantsLocationId: str?, AccessGrantsLocationConfiguration: AccessGrantsLocationConfiguration?{S3SubPrefix: str?}, Permission: str?, ApplicationArn: str?, GrantScope: str?}

@endpoint POST /v20180820/accessgrantsinstance
@required {x-amz-account-id: str}
@optional {IdentityCenterArn: str, Tags: [Tag]}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantsInstanceId: str?, AccessGrantsInstanceArn: str?, IdentityCenterArn: str?, IdentityCenterInstanceArn: str?, IdentityCenterApplicationArn: str?}

@endpoint POST /v20180820/accessgrantsinstance/location
@required {x-amz-account-id: str, LocationScope: str, IAMRoleArn: str}
@optional {Tags: [Tag]}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantsLocationId: str?, AccessGrantsLocationArn: str?, LocationScope: str?, IAMRoleArn: str?}

@endgroup

@group accesspoint
@endpoint PUT /v20180820/accesspoint/{name}
@required {x-amz-account-id: str, Name: str, Bucket: str}
@optional {VpcConfiguration: VpcConfiguration, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration, BucketAccountId: str}
@returns(200) {AccessPointArn: str?, Alias: str?}

@endgroup

@group accesspointforobjectlambda
@endpoint PUT /v20180820/accesspointforobjectlambda/{name}
@required {x-amz-account-id: str, Name: str, Configuration: ObjectLambdaConfiguration}
@returns(200) {ObjectLambdaAccessPointArn: str?, Alias: ObjectLambdaAccessPointAlias?{Value: str?, Status: str?}}

@endgroup

@group bucket
@endpoint PUT /v20180820/bucket/{name}
@required {Bucket: str}
@optional {x-amz-acl: str, x-amz-grant-full-control: str, x-amz-grant-read: str, x-amz-grant-read-acp: str, x-amz-grant-write: str, x-amz-grant-write-acp: str, x-amz-bucket-object-lock-enabled: bool, x-amz-outpost-id: str, CreateBucketConfiguration: CreateBucketConfiguration}
@returns(200) {Location: str?, BucketArn: str?}

@endgroup

@group jobs
@endpoint POST /v20180820/jobs
@required {x-amz-account-id: str, Operation: JobOperation, Report: JobReport, ClientRequestToken: str, Priority: int, RoleArn: str}
@optional {ConfirmationRequired: bool, Manifest: JobManifest, Description: str, Tags: [S3Tag], ManifestGenerator: JobManifestGenerator}
@returns(200) {JobId: str?}

@endgroup

@group async-requests
@endpoint POST /v20180820/async-requests/mrap/create
@required {x-amz-account-id: str, ClientToken: str, Details: CreateMultiRegionAccessPointInput}
@returns(200) {RequestTokenARN: str?}

@endgroup

@group storagelensgroup
@endpoint POST /v20180820/storagelensgroup
@required {x-amz-account-id: str, StorageLensGroup: StorageLensGroup}
@optional {Tags: [Tag]}

@endgroup

@group accessgrantsinstance
@endpoint DELETE /v20180820/accessgrantsinstance/grant/{id}
@required {x-amz-account-id: str, AccessGrantId: str}

@endpoint DELETE /v20180820/accessgrantsinstance
@required {x-amz-account-id: str}

@endpoint DELETE /v20180820/accessgrantsinstance/resourcepolicy
@required {x-amz-account-id: str}

@endpoint DELETE /v20180820/accessgrantsinstance/location/{id}
@required {x-amz-account-id: str, AccessGrantsLocationId: str}

@endgroup

@group accesspoint
@endpoint DELETE /v20180820/accesspoint/{name}
@required {x-amz-account-id: str, Name: str}

@endgroup

@group accesspointforobjectlambda
@endpoint DELETE /v20180820/accesspointforobjectlambda/{name}
@required {x-amz-account-id: str, Name: str}

@endgroup

@group accesspoint
@endpoint DELETE /v20180820/accesspoint/{name}/policy
@required {x-amz-account-id: str, Name: str}

@endgroup

@group accesspointforobjectlambda
@endpoint DELETE /v20180820/accesspointforobjectlambda/{name}/policy
@required {x-amz-account-id: str, Name: str}

@endgroup

@group bucket
@endpoint DELETE /v20180820/bucket/{name}
@required {x-amz-account-id: str, Bucket: str}

@endpoint DELETE /v20180820/bucket/{name}/lifecycleconfiguration
@required {x-amz-account-id: str, Bucket: str}

@endpoint DELETE /v20180820/bucket/{name}/policy
@required {x-amz-account-id: str, Bucket: str}

@endpoint DELETE /v20180820/bucket/{name}/replication
@required {x-amz-account-id: str, Bucket: str}

@endpoint DELETE /v20180820/bucket/{name}/tagging
@required {x-amz-account-id: str, Bucket: str}

@endgroup

@group jobs
@endpoint DELETE /v20180820/jobs/{id}/tagging
@required {x-amz-account-id: str, JobId: str}

@endgroup

@group async-requests
@endpoint POST /v20180820/async-requests/mrap/delete
@required {x-amz-account-id: str, ClientToken: str, Details: DeleteMultiRegionAccessPointInput}
@returns(200) {RequestTokenARN: str?}

@endgroup

@group configuration
@endpoint DELETE /v20180820/configuration/publicAccessBlock
@required {x-amz-account-id: str}

@endgroup

@group storagelens
@endpoint DELETE /v20180820/storagelens/{storagelensid}
@required {ConfigId: str, x-amz-account-id: str}

@endpoint DELETE /v20180820/storagelens/{storagelensid}/tagging
@required {ConfigId: str, x-amz-account-id: str}

@endgroup

@group storagelensgroup
@endpoint DELETE /v20180820/storagelensgroup/{name}
@required {Name: str, x-amz-account-id: str}

@endgroup

@group jobs
@endpoint GET /v20180820/jobs/{id}
@required {x-amz-account-id: str, JobId: str}
@returns(200) {Job: JobDescriptor?{JobId: str?, ConfirmationRequired: bool?, Description: str?, JobArn: str?, Status: str?, Manifest: JobManifest?{Spec: JobManifestSpec{Format: str, Fields: [str]?}, Location: JobManifestLocation{ObjectArn: str, ObjectVersionId: str?, ETag: str}}, Operation: JobOperation?{LambdaInvoke: LambdaInvokeOperation?{FunctionArn: str?, InvocationSchemaVersion: str?, UserArguments: map<str,str>?}, S3PutObjectCopy: S3CopyObjectOperation?{TargetResource: str?, CannedAccessControlList: str?, AccessControlGrants: [S3Grant]?, MetadataDirective: str?, ModifiedSinceConstraint: str(timestamp)?, NewObjectMetadata: S3ObjectMetadata?, NewObjectTagging: [S3Tag]?, RedirectLocation: str?, RequesterPays: bool?, StorageClass: str?, UnModifiedSinceConstraint: str(timestamp)?, SSEAwsKmsKeyId: str?, TargetKeyPrefix: str?, ObjectLockLegalHoldStatus: str?, ObjectLockMode: str?, ObjectLockRetainUntilDate: str(timestamp)?, BucketKeyEnabled: bool?, ChecksumAlgorithm: str?}, S3PutObjectAcl: S3SetObjectAclOperation?{AccessControlPolicy: S3AccessControlPolicy?}, S3PutObjectTagging: S3SetObjectTaggingOperation?{TagSet: [S3Tag]?}, S3DeleteObjectTagging: S3DeleteObjectTaggingOperation?, S3InitiateRestoreObject: S3InitiateRestoreObjectOperation?{ExpirationInDays: int?, GlacierJobTier: str?}, S3PutObjectLegalHold: S3SetObjectLegalHoldOperation?{LegalHold: S3ObjectLockLegalHold}, S3PutObjectRetention: S3SetObjectRetentionOperation?{BypassGovernanceRetention: bool?, Retention: S3Retention}, S3ReplicateObject: S3ReplicateObjectOperation?}, Priority: int?, ProgressSummary: JobProgressSummary?{TotalNumberOfTasks: int(i64)?, NumberOfTasksSucceeded: int(i64)?, NumberOfTasksFailed: int(i64)?, Timers: JobTimers?{ElapsedTimeInActiveSeconds: int(i64)?}}, StatusUpdateReason: str?, FailureReasons: [JobFailure]?, Report: JobReport?{Bucket: str?, Format: str?, Enabled: bool, Prefix: str?, ReportScope: str?}, CreationTime: str(timestamp)?, TerminationDate: str(timestamp)?, RoleArn: str?, SuspendedDate: str(timestamp)?, SuspendedCause: str?, ManifestGenerator: JobManifestGenerator?{S3JobManifestGenerator: S3JobManifestGenerator?{ExpectedBucketOwner: str?, SourceBucket: str, ManifestOutputLocation: S3ManifestOutputLocation?, Filter: JobManifestGeneratorFilter?, EnableManifestOutput: bool}}, GeneratedManifestDescriptor: S3GeneratedManifestDescriptor?{Format: str?, Location: JobManifestLocation?{ObjectArn: str, ObjectVersionId: str?, ETag: str}}}}

@endgroup

@group async-requests
@endpoint GET /v20180820/async-requests/mrap/{request_token+}
@required {x-amz-account-id: str, RequestTokenARN: str}
@returns(200) {AsyncOperation: AsyncOperation?{CreationTime: str(timestamp)?, Operation: str?, RequestTokenARN: str?, RequestParameters: AsyncRequestParameters?{CreateMultiRegionAccessPointRequest: CreateMultiRegionAccessPointInput?{Name: str, PublicAccessBlock: PublicAccessBlockConfiguration?, Regions: [Region]}, DeleteMultiRegionAccessPointRequest: DeleteMultiRegionAccessPointInput?{Name: str}, PutMultiRegionAccessPointPolicyRequest: PutMultiRegionAccessPointPolicyInput?{Name: str, Policy: str}}, RequestStatus: str?, ResponseDetails: AsyncResponseDetails?{MultiRegionAccessPointDetails: MultiRegionAccessPointsAsyncResponse?{Regions: [MultiRegionAccessPointRegionalResponse]?}, ErrorDetails: AsyncErrorDetails?{Code: str?, Message: str?, Resource: str?, RequestId: str?}}}}

@endgroup

@group accessgrantsinstance
@endpoint DELETE /v20180820/accessgrantsinstance/identitycenter
@required {x-amz-account-id: str}

@endpoint GET /v20180820/accessgrantsinstance/grant/{id}
@required {x-amz-account-id: str, AccessGrantId: str}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantId: str?, AccessGrantArn: str?, Grantee: Grantee?{GranteeType: str?, GranteeIdentifier: str?}, Permission: str?, AccessGrantsLocationId: str?, AccessGrantsLocationConfiguration: AccessGrantsLocationConfiguration?{S3SubPrefix: str?}, GrantScope: str?, ApplicationArn: str?}

@endpoint GET /v20180820/accessgrantsinstance
@required {x-amz-account-id: str}
@returns(200) {AccessGrantsInstanceArn: str?, AccessGrantsInstanceId: str?, IdentityCenterArn: str?, IdentityCenterInstanceArn: str?, IdentityCenterApplicationArn: str?, CreatedAt: str(timestamp)?}

@endpoint GET /v20180820/accessgrantsinstance/prefix
@required {x-amz-account-id: str, s3prefix: str}
@returns(200) {AccessGrantsInstanceArn: str?, AccessGrantsInstanceId: str?}

@endpoint GET /v20180820/accessgrantsinstance/resourcepolicy
@required {x-amz-account-id: str}
@returns(200) {Policy: str?, Organization: str?, CreatedAt: str(timestamp)?}

@endpoint GET /v20180820/accessgrantsinstance/location/{id}
@required {x-amz-account-id: str, AccessGrantsLocationId: str}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantsLocationId: str?, AccessGrantsLocationArn: str?, LocationScope: str?, IAMRoleArn: str?}

@endgroup

@group accesspoint
@endpoint GET /v20180820/accesspoint/{name}
@required {x-amz-account-id: str, Name: str}
@returns(200) {Name: str?, Bucket: str?, NetworkOrigin: str?, VpcConfiguration: VpcConfiguration?{VpcId: str}, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration?{BlockPublicAcls: bool?, IgnorePublicAcls: bool?, BlockPublicPolicy: bool?, RestrictPublicBuckets: bool?}, CreationDate: str(timestamp)?, Alias: str?, AccessPointArn: str?, Endpoints: map<str,str>?, BucketAccountId: str?}

@endgroup

@group accesspointforobjectlambda
@endpoint GET /v20180820/accesspointforobjectlambda/{name}/configuration
@required {x-amz-account-id: str, Name: str}
@returns(200) {Configuration: ObjectLambdaConfiguration?{SupportingAccessPoint: str, CloudWatchMetricsEnabled: bool?, AllowedFeatures: [str]?, TransformationConfigurations: [ObjectLambdaTransformationConfiguration]}}

@endpoint GET /v20180820/accesspointforobjectlambda/{name}
@required {x-amz-account-id: str, Name: str}
@returns(200) {Name: str?, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration?{BlockPublicAcls: bool?, IgnorePublicAcls: bool?, BlockPublicPolicy: bool?, RestrictPublicBuckets: bool?}, CreationDate: str(timestamp)?, Alias: ObjectLambdaAccessPointAlias?{Value: str?, Status: str?}}

@endgroup

@group accesspoint
@endpoint GET /v20180820/accesspoint/{name}/policy
@required {x-amz-account-id: str, Name: str}
@returns(200) {Policy: str?}

@endgroup

@group accesspointforobjectlambda
@endpoint GET /v20180820/accesspointforobjectlambda/{name}/policy
@required {x-amz-account-id: str, Name: str}
@returns(200) {Policy: str?}

@endgroup

@group accesspoint
@endpoint GET /v20180820/accesspoint/{name}/policyStatus
@required {x-amz-account-id: str, Name: str}
@returns(200) {PolicyStatus: PolicyStatus?{IsPublic: bool?}}

@endgroup

@group accesspointforobjectlambda
@endpoint GET /v20180820/accesspointforobjectlambda/{name}/policyStatus
@required {x-amz-account-id: str, Name: str}
@returns(200) {PolicyStatus: PolicyStatus?{IsPublic: bool?}}

@endgroup

@group bucket
@endpoint GET /v20180820/bucket/{name}
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {Bucket: str?, PublicAccessBlockEnabled: bool?, CreationDate: str(timestamp)?}

@endpoint GET /v20180820/bucket/{name}/lifecycleconfiguration
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {Rules: [LifecycleRule]?}

@endpoint GET /v20180820/bucket/{name}/policy
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {Policy: str?}

@endpoint GET /v20180820/bucket/{name}/replication
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {ReplicationConfiguration: ReplicationConfiguration?{Role: str, Rules: [ReplicationRule]}}

@endpoint GET /v20180820/bucket/{name}/tagging
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {TagSet: [S3Tag]}

@endpoint GET /v20180820/bucket/{name}/versioning
@required {x-amz-account-id: str, Bucket: str}
@returns(200) {Status: str?, MFADelete: str?}

@endgroup

@group accessgrantsinstance
@endpoint GET /v20180820/accessgrantsinstance/dataaccess
@required {x-amz-account-id: str, target: str, permission: str}
@optional {durationSeconds: int, privilege: str, targetType: str}
@returns(200) {Credentials: Credentials?{AccessKeyId: str?, SecretAccessKey: str?, SessionToken: str?, Expiration: str(timestamp)?}, MatchedGrantTarget: str?}

@endgroup

@group jobs
@endpoint GET /v20180820/jobs/{id}/tagging
@required {x-amz-account-id: str, JobId: str}
@returns(200) {Tags: [S3Tag]?}

@endgroup

@group mrap
@endpoint GET /v20180820/mrap/instances/{name+}
@required {x-amz-account-id: str, Name: str}
@returns(200) {AccessPoint: MultiRegionAccessPointReport?{Name: str?, Alias: str?, CreatedAt: str(timestamp)?, PublicAccessBlock: PublicAccessBlockConfiguration?{BlockPublicAcls: bool?, IgnorePublicAcls: bool?, BlockPublicPolicy: bool?, RestrictPublicBuckets: bool?}, Status: str?, Regions: [RegionReport]?}}

@endpoint GET /v20180820/mrap/instances/{name+}/policy
@required {x-amz-account-id: str, Name: str}
@returns(200) {Policy: MultiRegionAccessPointPolicyDocument?{Established: EstablishedMultiRegionAccessPointPolicy?{Policy: str?}, Proposed: ProposedMultiRegionAccessPointPolicy?{Policy: str?}}}

@endpoint GET /v20180820/mrap/instances/{name+}/policystatus
@required {x-amz-account-id: str, Name: str}
@returns(200) {Established: PolicyStatus?{IsPublic: bool?}}

@endpoint GET /v20180820/mrap/instances/{mrap+}/routes
@required {x-amz-account-id: str, Mrap: str}
@returns(200) {Mrap: str?, Routes: [MultiRegionAccessPointRoute]?}

@endgroup

@group configuration
@endpoint GET /v20180820/configuration/publicAccessBlock
@required {x-amz-account-id: str}
@returns(200) {PublicAccessBlockConfiguration: PublicAccessBlockConfiguration?{BlockPublicAcls: bool?, IgnorePublicAcls: bool?, BlockPublicPolicy: bool?, RestrictPublicBuckets: bool?}}

@endgroup

@group storagelens
@endpoint GET /v20180820/storagelens/{storagelensid}
@required {ConfigId: str, x-amz-account-id: str}
@returns(200) {StorageLensConfiguration: StorageLensConfiguration?{Id: str, AccountLevel: AccountLevel{ActivityMetrics: ActivityMetrics?{IsEnabled: bool?}, BucketLevel: BucketLevel{ActivityMetrics: ActivityMetrics?, PrefixLevel: PrefixLevel?, AdvancedCostOptimizationMetrics: AdvancedCostOptimizationMetrics?, AdvancedDataProtectionMetrics: AdvancedDataProtectionMetrics?, DetailedStatusCodesMetrics: DetailedStatusCodesMetrics?}, AdvancedCostOptimizationMetrics: AdvancedCostOptimizationMetrics?{IsEnabled: bool?}, AdvancedDataProtectionMetrics: AdvancedDataProtectionMetrics?{IsEnabled: bool?}, DetailedStatusCodesMetrics: DetailedStatusCodesMetrics?{IsEnabled: bool?}, StorageLensGroupLevel: StorageLensGroupLevel?{SelectionCriteria: StorageLensGroupLevelSelectionCriteria?}}, Include: Include?{Buckets: [str]?, Regions: [str]?}, Exclude: Exclude?{Buckets: [str]?, Regions: [str]?}, DataExport: StorageLensDataExport?{S3BucketDestination: S3BucketDestination?{Format: str, OutputSchemaVersion: str, AccountId: str, Arn: str, Prefix: str?, Encryption: StorageLensDataExportEncryption?}, CloudWatchMetrics: CloudWatchMetrics?{IsEnabled: bool}}, IsEnabled: bool, AwsOrg: StorageLensAwsOrg?{Arn: str}, StorageLensArn: str?}}

@endpoint GET /v20180820/storagelens/{storagelensid}/tagging
@required {ConfigId: str, x-amz-account-id: str}
@returns(200) {Tags: [StorageLensTag]?}

@endgroup

@group storagelensgroup
@endpoint GET /v20180820/storagelensgroup/{name}
@required {Name: str, x-amz-account-id: str}
@returns(200) {StorageLensGroup: StorageLensGroup?{Name: str, Filter: StorageLensGroupFilter{MatchAnyPrefix: [str]?, MatchAnySuffix: [str]?, MatchAnyTag: [S3Tag]?, MatchObjectAge: MatchObjectAge?{DaysGreaterThan: int?, DaysLessThan: int?}, MatchObjectSize: MatchObjectSize?{BytesGreaterThan: int(i64)?, BytesLessThan: int(i64)?}, And: StorageLensGroupAndOperator?{MatchAnyPrefix: [str]?, MatchAnySuffix: [str]?, MatchAnyTag: [S3Tag]?, MatchObjectAge: MatchObjectAge?, MatchObjectSize: MatchObjectSize?}, Or: StorageLensGroupOrOperator?{MatchAnyPrefix: [str]?, MatchAnySuffix: [str]?, MatchAnyTag: [S3Tag]?, MatchObjectAge: MatchObjectAge?, MatchObjectSize: MatchObjectSize?}}, StorageLensGroupArn: str?}}

@endgroup

@group accessgrantsinstance
@endpoint GET /v20180820/accessgrantsinstance/grants
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int, granteetype: str, granteeidentifier: str, permission: str, grantscope: str, application_arn: str}
@returns(200) {NextToken: str?, AccessGrantsList: [ListAccessGrantEntry]?}

@endgroup

@group accessgrantsinstances
@endpoint GET /v20180820/accessgrantsinstances
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, AccessGrantsInstancesList: [ListAccessGrantsInstanceEntry]?}

@endgroup

@group accessgrantsinstance
@endpoint GET /v20180820/accessgrantsinstance/locations
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int, locationscope: str}
@returns(200) {NextToken: str?, AccessGrantsLocationsList: [ListAccessGrantsLocationsEntry]?}

@endgroup

@group accesspoint
@endpoint GET /v20180820/accesspoint
@required {x-amz-account-id: str}
@optional {bucket: str, nextToken: str, maxResults: int}
@returns(200) {AccessPointList: [AccessPoint]?, NextToken: str?}

@endgroup

@group accesspointforobjectlambda
@endpoint GET /v20180820/accesspointforobjectlambda
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {ObjectLambdaAccessPointList: [ObjectLambdaAccessPoint]?, NextToken: str?}

@endgroup

@group accessgrantsinstance
@endpoint GET /v20180820/accessgrantsinstance/caller/grants
@required {x-amz-account-id: str}
@optional {grantscope: str, nextToken: str, maxResults: int, allowedByApplication: bool}
@returns(200) {NextToken: str?, CallerAccessGrantsList: [ListCallerAccessGrantsEntry]?}

@endgroup

@group jobs
@endpoint GET /v20180820/jobs
@required {x-amz-account-id: str}
@optional {jobStatuses: [str], nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, Jobs: [JobListDescriptor]?}

@endgroup

@group mrap
@endpoint GET /v20180820/mrap/instances
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {AccessPoints: [MultiRegionAccessPointReport]?, NextToken: str?}

@endgroup

@group bucket
@endpoint GET /v20180820/bucket
@required {x-amz-account-id: str}
@optional {nextToken: str, maxResults: int, x-amz-outpost-id: str}
@returns(200) {RegionalBucketList: [RegionalBucket]?, NextToken: str?}

@endgroup

@group storagelens
@endpoint GET /v20180820/storagelens
@required {x-amz-account-id: str}
@optional {nextToken: str}
@returns(200) {NextToken: str?, StorageLensConfigurationList: [ListStorageLensConfigurationEntry]?}

@endgroup

@group storagelensgroup
@endpoint GET /v20180820/storagelensgroup
@required {x-amz-account-id: str}
@optional {nextToken: str}
@returns(200) {NextToken: str?, StorageLensGroupList: [ListStorageLensGroupEntry]?}

@endgroup

@group tags
@endpoint GET /v20180820/tags/{resourceArn+}
@required {x-amz-account-id: str, ResourceArn: str}
@returns(200) {Tags: [Tag]?}

@endgroup

@group accessgrantsinstance
@endpoint PUT /v20180820/accessgrantsinstance/resourcepolicy
@required {x-amz-account-id: str, Policy: str}
@optional {Organization: str}
@returns(200) {Policy: str?, Organization: str?, CreatedAt: str(timestamp)?}

@endgroup

@group accesspointforobjectlambda
@endpoint PUT /v20180820/accesspointforobjectlambda/{name}/configuration
@required {x-amz-account-id: str, Name: str, Configuration: ObjectLambdaConfiguration}

@endgroup

@group accesspoint
@endpoint PUT /v20180820/accesspoint/{name}/policy
@required {x-amz-account-id: str, Name: str, Policy: str}

@endgroup

@group accesspointforobjectlambda
@endpoint PUT /v20180820/accesspointforobjectlambda/{name}/policy
@required {x-amz-account-id: str, Name: str, Policy: str}

@endgroup

@group bucket
@endpoint PUT /v20180820/bucket/{name}/lifecycleconfiguration
@required {x-amz-account-id: str, Bucket: str}
@optional {LifecycleConfiguration: LifecycleConfiguration}

@endpoint PUT /v20180820/bucket/{name}/policy
@required {x-amz-account-id: str, Bucket: str, Policy: str}
@optional {x-amz-confirm-remove-self-bucket-access: bool}

@endpoint PUT /v20180820/bucket/{name}/replication
@required {x-amz-account-id: str, Bucket: str, ReplicationConfiguration: ReplicationConfiguration}

@endpoint PUT /v20180820/bucket/{name}/tagging
@required {x-amz-account-id: str, Bucket: str, Tagging: Tagging}

@endpoint PUT /v20180820/bucket/{name}/versioning
@required {x-amz-account-id: str, Bucket: str, VersioningConfiguration: VersioningConfiguration}
@optional {x-amz-mfa: str}

@endgroup

@group jobs
@endpoint PUT /v20180820/jobs/{id}/tagging
@required {x-amz-account-id: str, JobId: str, Tags: [S3Tag]}

@endgroup

@group async-requests
@endpoint POST /v20180820/async-requests/mrap/put-policy
@required {x-amz-account-id: str, ClientToken: str, Details: PutMultiRegionAccessPointPolicyInput}
@returns(200) {RequestTokenARN: str?}

@endgroup

@group configuration
@endpoint PUT /v20180820/configuration/publicAccessBlock
@required {x-amz-account-id: str, PublicAccessBlockConfiguration: PublicAccessBlockConfiguration}

@endgroup

@group storagelens
@endpoint PUT /v20180820/storagelens/{storagelensid}
@required {ConfigId: str, x-amz-account-id: str, StorageLensConfiguration: StorageLensConfiguration}
@optional {Tags: [StorageLensTag]}

@endpoint PUT /v20180820/storagelens/{storagelensid}/tagging
@required {ConfigId: str, x-amz-account-id: str, Tags: [StorageLensTag]}

@endgroup

@group mrap
@endpoint PATCH /v20180820/mrap/instances/{mrap+}/routes
@required {x-amz-account-id: str, Mrap: str, RouteUpdates: [MultiRegionAccessPointRoute]}

@endgroup

@group tags
@endpoint POST /v20180820/tags/{resourceArn+}
@required {x-amz-account-id: str, ResourceArn: str, Tags: [Tag]}

@endpoint DELETE /v20180820/tags/{resourceArn+}
@required {x-amz-account-id: str, ResourceArn: str, tagKeys: [str]}

@endgroup

@group accessgrantsinstance
@endpoint PUT /v20180820/accessgrantsinstance/location/{id}
@required {x-amz-account-id: str, AccessGrantsLocationId: str, IAMRoleArn: str}
@returns(200) {CreatedAt: str(timestamp)?, AccessGrantsLocationId: str?, AccessGrantsLocationArn: str?, LocationScope: str?, IAMRoleArn: str?}

@endgroup

@group jobs
@endpoint POST /v20180820/jobs/{id}/priority
@required {x-amz-account-id: str, JobId: str, priority: int}
@returns(200) {JobId: str, Priority: int}

@endpoint POST /v20180820/jobs/{id}/status
@required {x-amz-account-id: str, JobId: str, requestedJobStatus: str}
@optional {statusUpdateReason: str}
@returns(200) {JobId: str?, Status: str?, StatusUpdateReason: str?}

@endgroup

@group storagelensgroup
@endpoint PUT /v20180820/storagelensgroup/{name}
@required {Name: str, x-amz-account-id: str, StorageLensGroup: StorageLensGroup}

@endgroup

@end
