{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/ETagAlgorithmFamily",
  "/properties/SseConfig"
 ],
 "definitions": {
  "ETagAlgorithmFamily": {
   "enum": [
    "MD5up",
    "SHA256up",
    "SHA512up"
   ],
   "type": "string"
  },
  "EncryptionType": {
   "enum": [
    "KMS"
   ],
   "type": "string"
  },
  "SequenceStoreStatus": {
   "enum": [
    "CREATING",
    "ACTIVE",
    "UPDATING",
    "DELETING",
    "FAILED"
   ],
   "type": "string"
  },
  "SseConfig": {
   "additionalProperties": false,
   "properties": {
    "KeyArn": {
     "maxLength": 2048,
     "minLength": 20,
     "pattern": "arn:([^:\n]*):([^:\n]*):([^:\n]*):([0-9]{12}):([^:\n]*)",
     "type": "string"
    },
    "Type": {
     "$ref": "#/definitions/EncryptionType"
    }
   },
   "required": [
    "Type"
   ],
   "type": "object"
  },
  "TagMap": {
   "additionalProperties": false,
   "patternProperties": {
    ".+": {
     "maxLength": 256,
     "minLength": 0,
     "type": "string"
    }
   },
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/SequenceStoreId"
 ],
 "properties": {
  "AccessLogLocation": {
   "pattern": "^$|^s3://([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])/?((.{1,800})/)?$",
   "type": "string"
  },
  "Arn": {
   "maxLength": 127,
   "minLength": 1,
   "pattern": "^arn:.+$",
   "type": "string"
  },
  "CreationTime": {
   "format": "date-time",
   "type": "string"
  },
  "Description": {
   "maxLength": 255,
   "minLength": 1,
   "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$",
   "type": "string"
  },
  "ETagAlgorithmFamily": {
   "$ref": "#/definitions/ETagAlgorithmFamily"
  },
  "FallbackLocation": {
   "minLength": 0,
   "pattern": "^$|^s3://([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])/?((.{1,1024})/)?$",
   "type": "string"
  },
  "Name": {
   "maxLength": 127,
   "minLength": 1,
   "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$",
   "type": "string"
  },
  "PropagatedSetLevelTags": {
   "items": {
    "maxLength": 128,
    "minLength": 1,
    "type": "string"
   },
   "maxItems": 50,
   "minItems": 0,
   "type": "array"
  },
  "S3AccessPointArn": {
   "maxLength": 1024,
   "minLength": 1,
   "pattern": "^arn:[^:]*:s3:[^:]*:[^:]*:accesspoint/.*$",
   "type": "string"
  },
  "S3AccessPolicy": {
   "maxLength": 100000,
   "minLength": 1,
   "type": "object"
  },
  "S3Uri": {
   "pattern": "^s3://([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])/(.{1,1024})$",
   "type": "string"
  },
  "SequenceStoreId": {
   "maxLength": 36,
   "minLength": 10,
   "pattern": "^[0-9]+$",
   "type": "string"
  },
  "SseConfig": {
   "$ref": "#/definitions/SseConfig"
  },
  "Status": {
   "$ref": "#/definitions/SequenceStoreStatus"
  },
  "StatusMessage": {
   "maxLength": 127,
   "minLength": 1,
   "pattern": "^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$",
   "type": "string"
  },
  "Tags": {
   "$ref": "#/definitions/TagMap"
  },
  "UpdateTime": {
   "format": "date-time",
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/Arn",
  "/properties/CreationTime",
  "/properties/S3AccessPointArn",
  "/properties/S3Uri",
  "/properties/SequenceStoreId",
  "/properties/Status",
  "/properties/StatusMessage",
  "/properties/UpdateTime"
 ],
 "required": [
  "Name"
 ],
 "tagging": {
  "cloudFormationSystemTags": true,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::Omics::SequenceStore"
}
