{
  "typeName" : "AWS::S3Express::BucketPolicy",
  "description" : "Resource Type definition for AWS::S3Express::BucketPolicy.",
  "additionalProperties" : false,
  "tagging" : {
    "taggable" : false,
    "tagOnCreate" : false,
    "tagUpdatable" : false,
    "cloudFormationSystemTags" : false
  },
  "properties" : {
    "Bucket" : {
      "description" : "The name of the S3 directory bucket to which the policy applies.",
      "type" : "string"
    },
    "PolicyDocument" : {
      "description" : "A policy document containing permissions to add to the specified 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" ]
    }
  },
  "primaryIdentifier" : [ "/properties/Bucket" ],
  "createOnlyProperties" : [ "/properties/Bucket" ],
  "required" : [ "Bucket", "PolicyDocument" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "s3express:GetBucketPolicy", "s3express:PutBucketPolicy" ]
    },
    "read" : {
      "permissions" : [ "s3express:GetBucketPolicy" ]
    },
    "update" : {
      "permissions" : [ "s3express:GetBucketPolicy", "s3express:PutBucketPolicy" ]
    },
    "delete" : {
      "permissions" : [ "s3express:GetBucketPolicy", "s3express:DeleteBucketPolicy" ]
    },
    "list" : {
      "permissions" : [ "s3express:GetBucketPolicy", "s3express:ListAllMyDirectoryBuckets" ]
    }
  }
}