{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2026-02-01",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"job-runtime.sagemaker",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Sagemaker Job Runtime Service",
    "serviceId":"SagemakerJobRuntime",
    "signatureVersion":"v4",
    "signingName":"sagemaker",
    "uid":"sagemakerjobruntime-2026-02-01"
  },
  "operations":{
    "CompleteRollout":{
      "name":"CompleteRollout",
      "http":{
        "method":"POST",
        "requestUri":"/complete-rollout",
        "responseCode":200
      },
      "input":{"shape":"CompleteRolloutRequest"},
      "output":{"shape":"CompleteRolloutResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceError"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "idempotent":true
    },
    "Sample":{
      "name":"Sample",
      "http":{
        "method":"POST",
        "requestUri":"/sample",
        "responseCode":200
      },
      "input":{"shape":"SampleRequest"},
      "output":{"shape":"SampleResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceError"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "SampleWithResponseStream":{
      "name":"SampleWithResponseStream",
      "http":{
        "method":"POST",
        "requestUri":"/sample-with-response-stream",
        "responseCode":200
      },
      "input":{"shape":"SampleWithResponseStreamRequest"},
      "output":{"shape":"SampleWithResponseStreamResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceError"},
        {"shape":"ValidationException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "UpdateReward":{
      "name":"UpdateReward",
      "http":{
        "method":"POST",
        "requestUri":"/update-reward",
        "responseCode":200
      },
      "input":{"shape":"UpdateRewardRequest"},
      "output":{"shape":"UpdateRewardResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServiceError"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "CompleteRolloutRequest":{
      "type":"structure",
      "required":[
        "JobArn",
        "TrajectoryId"
      ],
      "members":{
        "JobArn":{
          "shape":"JobArn",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Job-Arn"
        },
        "TrajectoryId":{"shape":"TrajectoryId"},
        "Status":{"shape":"CompletionStatus"},
        "ClientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "CompleteRolloutResponse":{
      "type":"structure",
      "members":{}
    },
    "CompletionStatus":{
      "type":"string",
      "enum":[
        "ready",
        "failed"
      ]
    },
    "ConflictException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "DoubleList":{
      "type":"list",
      "member":{"shape":"Double"}
    },
    "FailureReason":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "InferenceRequestBody":{
      "type":"blob",
      "sensitive":true
    },
    "InferenceResponseBody":{
      "type":"blob",
      "sensitive":true
    },
    "InternalServiceError":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "JobArn":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:job/[a-zA-Z0-9_\\-]+/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResponseStream":{
      "type":"blob",
      "sensitive":true,
      "streaming":true
    },
    "SampleRequest":{
      "type":"structure",
      "required":[
        "JobArn",
        "TrajectoryId",
        "Body"
      ],
      "members":{
        "JobArn":{
          "shape":"JobArn",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Job-Arn"
        },
        "TrajectoryId":{
          "shape":"TrajectoryId",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Trajectory-Id"
        },
        "Body":{"shape":"InferenceRequestBody"}
      },
      "payload":"Body"
    },
    "SampleResponse":{
      "type":"structure",
      "required":["Body"],
      "members":{
        "ContentType":{
          "shape":"String",
          "location":"header",
          "locationName":"Content-Type"
        },
        "Body":{"shape":"InferenceResponseBody"}
      },
      "payload":"Body"
    },
    "SampleWithResponseStreamRequest":{
      "type":"structure",
      "required":[
        "JobArn",
        "TrajectoryId",
        "Body"
      ],
      "members":{
        "JobArn":{
          "shape":"JobArn",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Job-Arn"
        },
        "TrajectoryId":{
          "shape":"TrajectoryId",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Trajectory-Id"
        },
        "Body":{"shape":"InferenceRequestBody"}
      },
      "payload":"Body"
    },
    "SampleWithResponseStreamResponse":{
      "type":"structure",
      "required":["Body"],
      "members":{
        "ContentType":{
          "shape":"String",
          "location":"header",
          "locationName":"Content-Type"
        },
        "Body":{"shape":"ResponseStream"}
      },
      "payload":"Body"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "ThrottlingException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "TrajectoryId":{
      "type":"string",
      "max":256,
      "min":1
    },
    "UpdateRewardRequest":{
      "type":"structure",
      "required":[
        "JobArn",
        "TrajectoryId",
        "Rewards"
      ],
      "members":{
        "JobArn":{
          "shape":"JobArn",
          "location":"header",
          "locationName":"X-Amzn-SageMaker-Job-Arn"
        },
        "TrajectoryId":{"shape":"TrajectoryId"},
        "Rewards":{"shape":"DoubleList"},
        "ClientToken":{
          "shape":"String",
          "idempotencyToken":true
        }
      }
    },
    "UpdateRewardResponse":{
      "type":"structure",
      "members":{}
    },
    "ValidationException":{
      "type":"structure",
      "required":["Message"],
      "members":{
        "Message":{"shape":"FailureReason"}
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  }
}
