{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/KmsKeyId",
  "/properties/AsyncInferenceConfig",
  "/properties/ExecutionRoleArn",
  "/properties/ShadowProductionVariants",
  "/properties/EnableNetworkIsolation",
  "/properties/ProductionVariants",
  "/properties/DataCaptureConfig",
  "/properties/ExplainerConfig",
  "/properties/EndpointConfigName",
  "/properties/VpcConfig"
 ],
 "definitions": {
  "AsyncInferenceClientConfig": {
   "additionalProperties": false,
   "properties": {
    "MaxConcurrentInvocationsPerInstance": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "AsyncInferenceConfig": {
   "additionalProperties": false,
   "properties": {
    "ClientConfig": {
     "$ref": "#/definitions/AsyncInferenceClientConfig"
    },
    "OutputConfig": {
     "$ref": "#/definitions/AsyncInferenceOutputConfig"
    }
   },
   "required": [
    "OutputConfig"
   ],
   "type": "object"
  },
  "AsyncInferenceNotificationConfig": {
   "additionalProperties": false,
   "properties": {
    "ErrorTopic": {
     "type": "string"
    },
    "IncludeInferenceResponseIn": {
     "items": {
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "SuccessTopic": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "AsyncInferenceOutputConfig": {
   "additionalProperties": false,
   "properties": {
    "KmsKeyId": {
     "anyOf": [
      {
       "format": "AWS::KMS::Key.Arn"
      },
      {
       "format": "AWS::KMS::Key.Id"
      },
      {
       "format": "AWS::KMS::Alias.AliasName"
      }
     ],
     "type": "string"
    },
    "NotificationConfig": {
     "$ref": "#/definitions/AsyncInferenceNotificationConfig"
    },
    "S3FailurePath": {
     "type": "string"
    },
    "S3OutputPath": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "CapacityReservationConfig": {
   "additionalProperties": false,
   "properties": {
    "CapacityReservationPreference": {
     "type": "string"
    },
    "MlReservationArn": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "CaptureContentTypeHeader": {
   "additionalProperties": false,
   "properties": {
    "CsvContentTypes": {
     "items": {
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "JsonContentTypes": {
     "items": {
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "CaptureOption": {
   "additionalProperties": false,
   "properties": {
    "CaptureMode": {
     "type": "string"
    }
   },
   "required": [
    "CaptureMode"
   ],
   "type": "object"
  },
  "ClarifyExplainerConfig": {
   "additionalProperties": false,
   "properties": {
    "EnableExplanations": {
     "type": "string"
    },
    "InferenceConfig": {
     "$ref": "#/definitions/ClarifyInferenceConfig"
    },
    "ShapConfig": {
     "$ref": "#/definitions/ClarifyShapConfig"
    }
   },
   "required": [
    "ShapConfig"
   ],
   "type": "object"
  },
  "ClarifyFeatureType": {
   "type": "string"
  },
  "ClarifyHeader": {
   "type": "string"
  },
  "ClarifyInferenceConfig": {
   "additionalProperties": false,
   "properties": {
    "ContentTemplate": {
     "type": "string"
    },
    "FeatureHeaders": {
     "items": {
      "$ref": "#/definitions/ClarifyHeader"
     },
     "type": "array",
     "uniqueItems": false
    },
    "FeatureTypes": {
     "items": {
      "$ref": "#/definitions/ClarifyFeatureType"
     },
     "type": "array",
     "uniqueItems": false
    },
    "FeaturesAttribute": {
     "type": "string"
    },
    "LabelAttribute": {
     "type": "string"
    },
    "LabelHeaders": {
     "items": {
      "$ref": "#/definitions/ClarifyHeader"
     },
     "type": "array",
     "uniqueItems": false
    },
    "LabelIndex": {
     "type": "integer"
    },
    "MaxPayloadInMB": {
     "type": "integer"
    },
    "MaxRecordCount": {
     "type": "integer"
    },
    "ProbabilityAttribute": {
     "type": "string"
    },
    "ProbabilityIndex": {
     "type": "integer"
    }
   },
   "type": "object"
  },
  "ClarifyShapBaselineConfig": {
   "additionalProperties": false,
   "properties": {
    "MimeType": {
     "type": "string"
    },
    "ShapBaseline": {
     "type": "string"
    },
    "ShapBaselineUri": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "ClarifyShapConfig": {
   "additionalProperties": false,
   "properties": {
    "NumberOfSamples": {
     "type": "integer"
    },
    "Seed": {
     "type": "integer"
    },
    "ShapBaselineConfig": {
     "$ref": "#/definitions/ClarifyShapBaselineConfig"
    },
    "TextConfig": {
     "$ref": "#/definitions/ClarifyTextConfig"
    },
    "UseLogit": {
     "type": "boolean"
    }
   },
   "required": [
    "ShapBaselineConfig"
   ],
   "type": "object"
  },
  "ClarifyTextConfig": {
   "additionalProperties": false,
   "properties": {
    "Granularity": {
     "type": "string"
    },
    "Language": {
     "type": "string"
    }
   },
   "required": [
    "Language",
    "Granularity"
   ],
   "type": "object"
  },
  "DataCaptureConfig": {
   "additionalProperties": false,
   "properties": {
    "CaptureContentTypeHeader": {
     "$ref": "#/definitions/CaptureContentTypeHeader"
    },
    "CaptureOptions": {
     "items": {
      "$ref": "#/definitions/CaptureOption"
     },
     "type": "array",
     "uniqueItems": false
    },
    "DestinationS3Uri": {
     "type": "string"
    },
    "EnableCapture": {
     "type": "boolean"
    },
    "InitialSamplingPercentage": {
     "type": "integer"
    },
    "KmsKeyId": {
     "anyOf": [
      {
       "format": "AWS::KMS::Key.Arn"
      },
      {
       "format": "AWS::KMS::Key.Id"
      },
      {
       "format": "AWS::KMS::Alias.AliasName"
      }
     ],
     "type": "string"
    }
   },
   "required": [
    "CaptureOptions",
    "DestinationS3Uri",
    "InitialSamplingPercentage"
   ],
   "type": "object"
  },
  "ExplainerConfig": {
   "additionalProperties": false,
   "properties": {
    "ClarifyExplainerConfig": {
     "$ref": "#/definitions/ClarifyExplainerConfig"
    }
   },
   "type": "object"
  },
  "InstancePools": {
   "additionalProperties": false,
   "properties": {
    "InstanceType": {
     "type": "string"
    },
    "ModelNameOverride": {
     "type": "string"
    },
    "Priority": {
     "type": "integer"
    }
   },
   "required": [
    "Priority",
    "InstanceType"
   ],
   "type": "object"
  },
  "ManagedInstanceScaling": {
   "additionalProperties": false,
   "properties": {
    "MaxInstanceCount": {
     "type": "integer"
    },
    "MinInstanceCount": {
     "type": "integer"
    },
    "Status": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "ProductionVariant": {
   "additionalProperties": false,
   "properties": {
    "CapacityReservationConfig": {
     "$ref": "#/definitions/CapacityReservationConfig"
    },
    "ContainerStartupHealthCheckTimeoutInSeconds": {
     "type": "integer"
    },
    "EnableSSMAccess": {
     "type": "boolean"
    },
    "InferenceAmiVersion": {
     "type": "string"
    },
    "InitialInstanceCount": {
     "type": "integer"
    },
    "InitialVariantWeight": {
     "type": "number"
    },
    "InstancePools": {
     "items": {
      "$ref": "#/definitions/InstancePools"
     },
     "type": "array",
     "uniqueItems": false
    },
    "InstanceType": {
     "type": "string"
    },
    "ManagedInstanceScaling": {
     "$ref": "#/definitions/ManagedInstanceScaling"
    },
    "ModelDataDownloadTimeoutInSeconds": {
     "type": "integer"
    },
    "ModelName": {
     "type": "string"
    },
    "RoutingConfig": {
     "$ref": "#/definitions/RoutingConfig"
    },
    "ServerlessConfig": {
     "$ref": "#/definitions/ServerlessConfig"
    },
    "VariantInstanceProvisionTimeoutInSeconds": {
     "type": "integer"
    },
    "VariantName": {
     "type": "string"
    },
    "VolumeSizeInGB": {
     "type": "integer"
    }
   },
   "required": [
    "VariantName"
   ],
   "type": "object"
  },
  "RoutingConfig": {
   "additionalProperties": false,
   "properties": {
    "RoutingStrategy": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "ServerlessConfig": {
   "additionalProperties": false,
   "properties": {
    "MaxConcurrency": {
     "type": "integer"
    },
    "MemorySizeInMB": {
     "type": "integer"
    },
    "ProvisionedConcurrency": {
     "type": "integer"
    }
   },
   "required": [
    "MaxConcurrency",
    "MemorySizeInMB"
   ],
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "type": "string"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "Value",
    "Key"
   ],
   "type": "object"
  },
  "VpcConfig": {
   "additionalProperties": false,
   "properties": {
    "SecurityGroupIds": {
     "format": "AWS::EC2::SecurityGroup.Ids",
     "items": {
      "format": "AWS::EC2::SecurityGroup.Id",
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    },
    "Subnets": {
     "format": "AWS::EC2::Subnet.Ids",
     "items": {
      "format": "AWS::EC2::Subnet.Id",
      "type": "string"
     },
     "type": "array",
     "uniqueItems": false
    }
   },
   "required": [
    "Subnets",
    "SecurityGroupIds"
   ],
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/Id"
 ],
 "properties": {
  "AsyncInferenceConfig": {
   "$ref": "#/definitions/AsyncInferenceConfig"
  },
  "DataCaptureConfig": {
   "$ref": "#/definitions/DataCaptureConfig"
  },
  "EnableNetworkIsolation": {
   "type": "boolean"
  },
  "EndpointConfigName": {
   "type": "string"
  },
  "ExecutionRoleArn": {
   "format": "AWS::IAM::Role.Arn",
   "type": "string"
  },
  "ExplainerConfig": {
   "$ref": "#/definitions/ExplainerConfig"
  },
  "Id": {
   "type": "string"
  },
  "KmsKeyId": {
   "anyOf": [
    {
     "format": "AWS::KMS::Key.Arn"
    },
    {
     "format": "AWS::KMS::Key.Id"
    },
    {
     "format": "AWS::KMS::Alias.AliasName"
    }
   ],
   "type": "string"
  },
  "ProductionVariants": {
   "items": {
    "$ref": "#/definitions/ProductionVariant"
   },
   "type": "array",
   "uniqueItems": false
  },
  "ShadowProductionVariants": {
   "items": {
    "$ref": "#/definitions/ProductionVariant"
   },
   "type": "array",
   "uniqueItems": false
  },
  "Tags": {
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "type": "array",
   "uniqueItems": false
  },
  "VpcConfig": {
   "$ref": "#/definitions/VpcConfig"
  }
 },
 "readOnlyProperties": [
  "/properties/Id"
 ],
 "required": [
  "ProductionVariants"
 ],
 "typeName": "AWS::SageMaker::EndpointConfig"
}
