{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2017-05-13",
    "endpointPrefix":"runtime.sagemaker",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"Amazon SageMaker Runtime",
    "serviceId":"SageMaker Runtime",
    "signatureVersion":"v4",
    "signingName":"sagemaker",
    "uid":"runtime.sagemaker-2017-05-13"
  },
  "operations":{
    "InvokeEndpoint":{
      "name":"InvokeEndpoint",
      "http":{
        "method":"POST",
        "requestUri":"/endpoints/{EndpointName}/invocations"
      },
      "input":{"shape":"InvokeEndpointInput"},
      "output":{"shape":"InvokeEndpointOutput"},
      "errors":[
        {"shape":"InternalFailure"},
        {"shape":"ServiceUnavailable"},
        {"shape":"ValidationError"},
        {"shape":"ModelError"}
      ],
      "documentation":"<p>After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint. </p> <p>For an overview of Amazon SageMaker, see <a href=\"http://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works.html\">How It Works</a> </p> <p> Amazon SageMaker strips all POST headers except those supported by the API. Amazon SageMaker might add additional headers. You should not rely on the behavior of headers outside those enumerated in the request syntax. </p>"
    }
  },
  "shapes":{
    "BodyBlob":{
      "type":"blob",
      "max":5242880,
      "sensitive":true
    },
    "EndpointName":{
      "type":"string",
      "max":63,
      "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*"
    },
    "Header":{
      "type":"string",
      "max":1024
    },
    "InternalFailure":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"}
      },
      "documentation":"<p> Internal failure occurred. </p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InvokeEndpointInput":{
      "type":"structure",
      "required":[
        "EndpointName",
        "Body"
      ],
      "members":{
        "EndpointName":{
          "shape":"EndpointName",
          "documentation":"<p>The name of the endpoint that you specified when you created the endpoint using the <a href=\"http://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateEndpoint.html\">CreateEndpoint</a> API. </p>",
          "location":"uri",
          "locationName":"EndpointName"
        },
        "Body":{
          "shape":"BodyBlob",
          "documentation":"<p>Provides input data, in the format specified in the <code>ContentType</code> request header. Amazon SageMaker passes all of the data in the body to the model. </p>"
        },
        "ContentType":{
          "shape":"Header",
          "documentation":"<p>The MIME type of the input data in the request body.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "Accept":{
          "shape":"Header",
          "documentation":"<p>The desired MIME type of the inference in the response.</p>",
          "location":"header",
          "locationName":"Accept"
        }
      },
      "payload":"Body"
    },
    "InvokeEndpointOutput":{
      "type":"structure",
      "required":["Body"],
      "members":{
        "Body":{
          "shape":"BodyBlob",
          "documentation":"<p>Includes the inference provided by the model.</p>"
        },
        "ContentType":{
          "shape":"Header",
          "documentation":"<p>The MIME type of the inference returned in the response body.</p>",
          "location":"header",
          "locationName":"Content-Type"
        },
        "InvokedProductionVariant":{
          "shape":"Header",
          "documentation":"<p>Identifies the production variant that was invoked.</p>",
          "location":"header",
          "locationName":"x-Amzn-Invoked-Production-Variant"
        }
      },
      "payload":"Body"
    },
    "LogStreamArn":{"type":"string"},
    "Message":{
      "type":"string",
      "max":2048
    },
    "ModelError":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"},
        "OriginalStatusCode":{
          "shape":"StatusCode",
          "documentation":"<p> Original status code. </p>"
        },
        "OriginalMessage":{
          "shape":"Message",
          "documentation":"<p> Original message. </p>"
        },
        "LogStreamArn":{
          "shape":"LogStreamArn",
          "documentation":"<p> Amazon Resource Name (ARN) of the log stream. </p>"
        }
      },
      "documentation":"<p> Model (owned by the customer in the container) returned an error 500. </p>",
      "error":{"httpStatusCode":424},
      "exception":true
    },
    "ServiceUnavailable":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"}
      },
      "documentation":"<p> Service is unavailable. Try your call again. </p>",
      "error":{"httpStatusCode":503},
      "exception":true,
      "fault":true
    },
    "StatusCode":{"type":"integer"},
    "ValidationError":{
      "type":"structure",
      "members":{
        "Message":{"shape":"Message"}
      },
      "documentation":"<p> Inspect your request and try again. </p>",
      "error":{"httpStatusCode":400},
      "exception":true
    }
  },
  "documentation":"<p> Amazon SageMaker runtime API. </p>"
}
