{
  "typeName" : "AWS::S3Tables::TableBucketPolicy",
  "description" : "Applies an IAM resource policy to a table bucket.",
  "properties" : {
    "ResourcePolicy" : {
      "$ref" : "#/definitions/ResourcePolicy"
    },
    "TableBucketARN" : {
      "$ref" : "#/definitions/TableBucketARN"
    }
  },
  "definitions" : {
    "ResourcePolicy" : {
      "description" : "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.",
      "type" : [ "object", "string" ]
    },
    "TableBucketARN" : {
      "description" : "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.",
      "type" : "string",
      "examples" : [ "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" ]
    }
  },
  "additionalProperties" : false,
  "required" : [ "ResourcePolicy", "TableBucketARN" ],
  "createOnlyProperties" : [ "/properties/TableBucketARN" ],
  "primaryIdentifier" : [ "/properties/TableBucketARN" ],
  "tagging" : {
    "taggable" : false,
    "tagOnCreate" : false,
    "tagUpdatable" : false,
    "cloudFormationSystemTags" : false
  },
  "handlers" : {
    "create" : {
      "permissions" : [ "s3tables:GetTableBucket", "s3tables:GetTableBucketPolicy", "s3tables:PutTableBucketPolicy" ]
    },
    "read" : {
      "permissions" : [ "s3tables:GetTableBucketPolicy" ]
    },
    "update" : {
      "permissions" : [ "s3tables:GetTableBucketPolicy", "s3tables:PutTableBucketPolicy" ]
    },
    "delete" : {
      "permissions" : [ "s3tables:GetTableBucketPolicy", "s3tables:DeleteTableBucketPolicy" ]
    },
    "list" : {
      "permissions" : [ "s3tables:GetTableBucketPolicy", "s3tables:ListTableBuckets" ]
    }
  }
}