Amazon S3 Access Control API

Operations for managing bucket and object access control lists (ACLs)

Documentation

Specifications

Code Examples

Schemas & Data

Other Resources

OpenAPI Specification

amazon-s3-access-control-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon S3 Control Access Control API
  description: Amazon S3 Control provides API operations for managing S3 account-level settings, access points, Batch Operations jobs, S3 Access Grants, Multi-Region Access Points, and Storage Lens configurations. The S3 Control API uses a separate endpoint from the standard S3 API and requires an account ID in the host header.
  version: '2018-08-20'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://aws.amazon.com/service-terms/
  x-logo:
    url: https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png
servers:
- url: https://s3-control.{region}.amazonaws.com
  description: Amazon S3 Control regional endpoint
  variables:
    region:
      default: us-east-1
      description: AWS region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - eu-north-1
      - ap-northeast-1
      - ap-northeast-2
      - ap-southeast-1
      - ap-southeast-2
      - ap-south-1
      - sa-east-1
      - ca-central-1
security:
- sigv4: []
tags:
- name: Access Control
  description: Operations for managing bucket and object access control lists (ACLs)
paths:
  /{Bucket}?acl:
    get:
      operationId: GetBucketAcl
      summary: Amazon S3 Get Bucket Acl
      description: 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, you must have the READ_ACP access to the bucket.
      tags:
      - Access Control
      parameters:
      - $ref: '#/components/parameters/BucketName'
      - name: x-amz-expected-bucket-owner
        in: header
        description: The account ID of the expected bucket owner.
        schema:
          type: string
        example: example_value
      responses:
        '200':
          description: Successfully returned the bucket ACL.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/AccessControlPolicy'
              examples:
                Getbucketacl200Example:
                  summary: Default GetBucketAcl 200 response
                  x-microcks-default: true
                  value:
                    Owner:
                      DisplayName: example_value
                      ID: abc123
                    AccessControlList:
                      Grant:
                      - {}
        '403':
          description: Access denied.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Getbucketacl403Example:
                  summary: Default GetBucketAcl 403 response
                  x-microcks-default: true
                  value:
                    Code: example_value
                    Message: example_value
                    Resource: example_value
                    RequestId: '500123'
                    HostId: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: PutBucketAcl
      summary: Amazon S3 Put Bucket Acl
      description: Sets the permissions on an existing bucket using access control lists (ACL). You can set permissions to grant or revoke access at the bucket level using either the request body or request headers.
      tags:
      - Access Control
      parameters:
      - $ref: '#/components/parameters/BucketName'
      - name: x-amz-acl
        in: header
        description: The canned ACL to apply to the bucket.
        schema:
          type: string
          enum:
          - private
          - public-read
          - public-read-write
          - authenticated-read
        example: private
      - name: x-amz-grant-full-control
        in: header
        description: Allows grantee full control of the bucket.
        schema:
          type: string
        example: example_value
      - name: x-amz-grant-read
        in: header
        description: Allows grantee to list the objects in the bucket.
        schema:
          type: string
        example: example_value
      - name: x-amz-grant-read-acp
        in: header
        description: Allows grantee to read the bucket ACL.
        schema:
          type: string
        example: example_value
      - name: x-amz-grant-write
        in: header
        description: Allows grantee to create objects in the bucket.
        schema:
          type: string
        example: example_value
      - name: x-amz-grant-write-acp
        in: header
        description: Allows grantee to write the ACL for the applicable bucket.
        schema:
          type: string
        example: example_value
      - name: Content-MD5
        in: header
        description: The base64-encoded 128-bit MD5 digest of the data.
        schema:
          type: string
        example: example_value
      - name: x-amz-expected-bucket-owner
        in: header
        description: The account ID of the expected bucket owner.
        schema:
          type: string
        example: example_value
      requestBody:
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/AccessControlPolicy'
            examples:
              PutbucketaclRequestExample:
                summary: Default PutBucketAcl request
                x-microcks-default: true
                value:
                  Owner:
                    DisplayName: example_value
                    ID: abc123
                  AccessControlList:
                    Grant:
                    - {}
      responses:
        '200':
          description: Bucket ACL updated successfully.
        '403':
          description: Access denied.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Putbucketacl403Example:
                  summary: Default PutBucketAcl 403 response
                  x-microcks-default: true
                  value:
                    Code: example_value
                    Message: example_value
                    Resource: example_value
                    RequestId: '500123'
                    HostId: '500123'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  parameters:
    BucketName:
      name: Bucket
      in: path
      required: true
      description: The name of the bucket. Bucket names must be between 3 and 63 characters long, consist only of lowercase letters, numbers, hyphens, and periods, and must begin and end with a letter or number.
      schema:
        type: string
        minLength: 3
        maxLength: 63
        pattern: ^[a-z0-9][a-z0-9.\-]{1,61}[a-z0-9]$
  schemas:
    AccessControlPolicy:
      type: object
      description: Contains the elements that set the ACL permissions for an object per grantee.
      xml:
        name: AccessControlPolicy
        namespace: http://s3.amazonaws.com/doc/2006-03-01/
      properties:
        Owner:
          $ref: '#/components/schemas/Owner'
        AccessControlList:
          type: object
          properties:
            Grant:
              type: array
              items:
                $ref: '#/components/schemas/Grant'
          example: example_value
    Error:
      type: object
      description: Container for all error elements.
      xml:
        name: Error
      properties:
        Code:
          type: string
          description: The error code is a string that uniquely identifies an error condition. Examples include NoSuchBucket, NoSuchKey, AccessDenied, InvalidBucketName, etc.
          example: example_value
        Message:
          type: string
          description: A human-readable description of the error.
          example: example_value
        Resource:
          type: string
          description: The bucket or object that is involved in the error.
          example: example_value
        RequestId:
          type: string
          description: Unique identifier for the request.
          example: '500123'
        HostId:
          type: string
          description: A special token to help AWS troubleshoot problems.
          example: '500123'
    Owner:
      type: object
      description: Container for the owner's display name and ID.
      properties:
        DisplayName:
          type: string
          description: Container for the display name of the owner.
          example: example_value
        ID:
          type: string
          description: Container for the ID of the owner.
          example: abc123
    Grant:
      type: object
      description: Container for grant information.
      properties:
        Grantee:
          type: object
          description: The person being granted permissions.
          properties:
            DisplayName:
              type: string
            EmailAddress:
              type: string
            ID:
              type: string
            Type:
              type: string
              enum:
              - CanonicalUser
              - AmazonCustomerByEmail
              - Group
            URI:
              type: string
          example: example_value
        Permission:
          type: string
          description: Specifies the permission given to the grantee.
          enum:
          - FULL_CONTROL
          - WRITE
          - WRITE_ACP
          - READ
          - READ_ACP
          example: FULL_CONTROL
  securitySchemes:
    sigv4:
      type: apiKey
      name: Authorization
      in: header
      description: AWS Signature Version 4 authentication. The S3 Control API uses the service name s3 for signing.
externalDocs:
  description: Amazon S3 Control API Reference
  url: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Types_AWS_S3_Control.html