{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/TargetFunctionArn",
  "/properties/Qualifier"
 ],
 "definitions": {
  "AllowHeaders": {
   "insertionOrder": true,
   "items": {
    "maxLength": 1024,
    "minLength": 1,
    "type": "string"
   },
   "maxItems": 100,
   "minItems": 1,
   "type": "array"
  },
  "AllowMethods": {
   "insertionOrder": true,
   "items": {
    "enum": [
     "GET",
     "PUT",
     "HEAD",
     "POST",
     "PATCH",
     "DELETE",
     "*"
    ],
    "maxLength": 6,
    "minLength": 0,
    "type": "string"
   },
   "maxItems": 6,
   "minItems": 1,
   "type": "array"
  },
  "AllowOrigins": {
   "insertionOrder": true,
   "items": {
    "maxLength": 253,
    "minLength": 1,
    "type": "string"
   },
   "maxItems": 100,
   "minItems": 1,
   "type": "array"
  },
  "Cors": {
   "additionalProperties": false,
   "properties": {
    "AllowCredentials": {
     "type": "boolean"
    },
    "AllowHeaders": {
     "$ref": "#/definitions/AllowHeaders"
    },
    "AllowMethods": {
     "$ref": "#/definitions/AllowMethods"
    },
    "AllowOrigins": {
     "$ref": "#/definitions/AllowOrigins"
    },
    "ExposeHeaders": {
     "$ref": "#/definitions/ExposeHeaders"
    },
    "MaxAge": {
     "maximum": 86400,
     "minimum": 0,
     "type": "integer"
    }
   },
   "type": "object"
  },
  "ExposeHeaders": {
   "insertionOrder": true,
   "items": {
    "maxLength": 1024,
    "minLength": 1,
    "type": "string"
   },
   "maxItems": 100,
   "minItems": 1,
   "type": "array"
  }
 },
 "primaryIdentifier": [
  "/properties/FunctionArn"
 ],
 "properties": {
  "AuthType": {
   "enum": [
    "AWS_IAM",
    "NONE"
   ],
   "type": "string"
  },
  "Cors": {
   "$ref": "#/definitions/Cors"
  },
  "FunctionArn": {
   "format": "AWS::Lambda::Function.Arn",
   "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:((?!\\d+)[0-9a-zA-Z_]+))?$",
   "type": "string"
  },
  "FunctionUrl": {
   "type": "string"
  },
  "InvokeMode": {
   "enum": [
    "BUFFERED",
    "RESPONSE_STREAM"
   ],
   "type": "string"
  },
  "Qualifier": {
   "maxLength": 128,
   "minLength": 1,
   "pattern": "((?!^[0-9]+$)([a-zA-Z0-9-_]+))",
   "type": "string"
  },
  "TargetFunctionArn": {
   "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:((?!\\d+)[0-9a-zA-Z_]+))?$",
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/FunctionUrl",
  "/properties/FunctionArn"
 ],
 "required": [
  "TargetFunctionArn",
  "AuthType"
 ],
 "tagging": {
  "taggable": false
 },
 "typeName": "AWS::Lambda::Url",
 "writeOnlyProperties": [
  "/properties/TargetFunctionArn",
  "/properties/Qualifier"
 ]
}
