{
  "typeName" : "AWS::Signer::ProfilePermission",
  "description" : "An example resource schema demonstrating some basic constructs and validation rules.",
  "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "properties" : {
    "ProfileName" : {
      "type" : "string"
    },
    "ProfileVersion" : {
      "type" : "string",
      "pattern" : "^[0-9a-zA-Z]{10}$"
    },
    "Action" : {
      "type" : "string"
    },
    "Principal" : {
      "type" : "string"
    },
    "StatementId" : {
      "type" : "string"
    }
  },
  "additionalProperties" : false,
  "required" : [ "ProfileName", "Action", "Principal", "StatementId" ],
  "createOnlyProperties" : [ "/properties/ProfileName", "/properties/Action", "/properties/Principal", "/properties/StatementId", "/properties/ProfileVersion" ],
  "primaryIdentifier" : [ "/properties/StatementId", "/properties/ProfileName" ],
  "handlers" : {
    "create" : {
      "permissions" : [ "signer:AddProfilePermission", "signer:ListProfilePermissions" ]
    },
    "read" : {
      "permissions" : [ "signer:ListProfilePermissions" ]
    },
    "delete" : {
      "permissions" : [ "signer:RemoveProfilePermission", "signer:ListProfilePermissions" ]
    },
    "list" : {
      "permissions" : [ "signer:ListProfilePermissions", "signer:GetSigningProfile" ]
    }
  }
}