{
    "typeName" : "AWS::Lambda::CodeSigningConfig",
    "additionalProperties" : false,
    "properties" : {
      "Description" : {
        "type" : "string",
        "minLength" : 0,
        "maxLength" : 256
      },
      "AllowedPublishers" : {
        "$ref" : "#/definitions/AllowedPublishers"
      },
      "CodeSigningPolicies" : {
        "$ref" : "#/definitions/CodeSigningPolicies"
      },
      "CodeSigningConfigId" : {
        "type" : "string",
        "pattern" : "csc-[a-zA-Z0-9-_\\.]{17}"
      },
      "CodeSigningConfigArn" : {
        "type" : "string",
        "pattern" : "arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17}"
      }
    },
    "definitions" : {
      "AllowedPublishers" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "SigningProfileVersionArns" : {
            "type" : "array",
            "minItems" : 1,
            "maxItems" : 20,
            "items" : {
              "type" : "string",
              "pattern" : "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)",
              "minLength" : 12,
              "maxLength" : 1024
            }
          }
        },
        "required" : [ "SigningProfileVersionArns" ]
      },
      "CodeSigningPolicies" : {
        "type" : "object",
        "additionalProperties" : false,
        "properties" : {
          "UntrustedArtifactOnDeployment" : {
            "type" : "string",
            "default" : "Warn",
            "enum" : [ "Warn", "Enforce" ]
          }
        },
        "required" : [ "UntrustedArtifactOnDeployment" ]
      }
    },
    "required" : [ "AllowedPublishers" ],
    "readOnlyProperties" : [ "/properties/CodeSigningConfigId", "/properties/CodeSigningConfigArn" ],
    "primaryIdentifier" : [ "/properties/CodeSigningConfigArn" ]
  }
