{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-11-14",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"elemental-inference",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS Elemental Inference",
    "serviceId":"ElementalInference",
    "signatureVersion":"v4",
    "signingName":"elemental-inference",
    "uid":"elementalinference-2018-11-14"
  },
  "operations":{
    "AssociateFeed":{
      "name":"AssociateFeed",
      "http":{
        "method":"POST",
        "requestUri":"/v1/feed/{id}/associate",
        "responseCode":200
      },
      "input":{"shape":"AssociateFeedRequest"},
      "output":{"shape":"AssociateFeedResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "idempotent":true
    },
    "CreateFeed":{
      "name":"CreateFeed",
      "http":{
        "method":"POST",
        "requestUri":"/v1/feed",
        "responseCode":202
      },
      "input":{"shape":"CreateFeedRequest"},
      "output":{"shape":"CreateFeedResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "idempotent":true
    },
    "DeleteFeed":{
      "name":"DeleteFeed",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/feed/{id}",
        "responseCode":202
      },
      "input":{"shape":"DeleteFeedRequest"},
      "output":{"shape":"DeleteFeedResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"}
      ],
      "idempotent":true
    },
    "DisassociateFeed":{
      "name":"DisassociateFeed",
      "http":{
        "method":"POST",
        "requestUri":"/v1/feed/{id}/disassociate",
        "responseCode":200
      },
      "input":{"shape":"DisassociateFeedRequest"},
      "output":{"shape":"DisassociateFeedResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"}
      ],
      "idempotent":true
    },
    "GetFeed":{
      "name":"GetFeed",
      "http":{
        "method":"GET",
        "requestUri":"/v1/feed/{id}",
        "responseCode":200
      },
      "input":{"shape":"GetFeedRequest"},
      "output":{"shape":"GetFeedResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"}
      ],
      "readonly":true
    },
    "ListFeeds":{
      "name":"ListFeeds",
      "http":{
        "method":"GET",
        "requestUri":"/v1/feeds",
        "responseCode":200
      },
      "input":{"shape":"ListFeedsRequest"},
      "output":{"shape":"ListFeedsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"}
      ],
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/v1/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"}
      ],
      "readonly":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/v1/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"TagResourceRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"}
      ],
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"UntagResourceRequest"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"}
      ],
      "idempotent":true
    },
    "UpdateFeed":{
      "name":"UpdateFeed",
      "http":{
        "method":"PUT",
        "requestUri":"/v1/feed/{id}",
        "responseCode":200
      },
      "input":{"shape":"UpdateFeedRequest"},
      "output":{"shape":"UpdateFeedResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerErrorException"},
        {"shape":"AccessDeniedException"},
        {"shape":"TooManyRequestException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AssociateFeedRequest":{
      "type":"structure",
      "required":[
        "id",
        "associatedResourceName",
        "outputs"
      ],
      "members":{
        "id":{
          "shape":"FeedId",
          "location":"uri",
          "locationName":"id"
        },
        "associatedResourceName":{
          "shape":"AssociatedResourceName",
          "idempotencyToken":true
        },
        "outputs":{"shape":"CreateOutputList"},
        "dryRun":{"shape":"Boolean"}
      }
    },
    "AssociateFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "id"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "id":{"shape":"FeedId"}
      }
    },
    "AssociatedResourceName":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"[\\w \\-\\.',@:;/]*"
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "ClippingConfig":{
      "type":"structure",
      "members":{
        "callbackMetadata":{"shape":"ResourceDescription"}
      }
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "CreateFeedRequest":{
      "type":"structure",
      "required":[
        "name",
        "outputs"
      ],
      "members":{
        "name":{"shape":"ResourceName"},
        "outputs":{"shape":"CreateOutputList"},
        "tags":{"shape":"TagMap"}
      }
    },
    "CreateFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "name",
        "id",
        "dataEndpoints",
        "outputs",
        "status"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "name":{"shape":"ResourceName"},
        "id":{"shape":"FeedId"},
        "dataEndpoints":{"shape":"StringList"},
        "outputs":{"shape":"GetOutputList"},
        "status":{"shape":"FeedStatus"},
        "association":{"shape":"FeedAssociation"},
        "tags":{"shape":"TagMap"}
      }
    },
    "CreateOutput":{
      "type":"structure",
      "required":[
        "name",
        "outputConfig",
        "status"
      ],
      "members":{
        "name":{"shape":"ResourceName"},
        "outputConfig":{"shape":"OutputConfig"},
        "status":{"shape":"OutputStatus"},
        "description":{"shape":"ResourceDescription"}
      }
    },
    "CreateOutputList":{
      "type":"list",
      "member":{"shape":"CreateOutput"}
    },
    "CroppingConfig":{
      "type":"structure",
      "members":{}
    },
    "DeleteFeedRequest":{
      "type":"structure",
      "required":["id"],
      "members":{
        "id":{
          "shape":"FeedId",
          "location":"uri",
          "locationName":"id"
        }
      }
    },
    "DeleteFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "id",
        "status"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "id":{"shape":"FeedId"},
        "status":{"shape":"FeedStatus"}
      }
    },
    "DisassociateFeedRequest":{
      "type":"structure",
      "required":[
        "id",
        "associatedResourceName"
      ],
      "members":{
        "id":{
          "shape":"FeedId",
          "location":"uri",
          "locationName":"id"
        },
        "associatedResourceName":{
          "shape":"AssociatedResourceName",
          "idempotencyToken":true
        },
        "dryRun":{"shape":"Boolean"}
      }
    },
    "DisassociateFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "id"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "id":{"shape":"FeedId"}
      }
    },
    "FeedArn":{"type":"string"},
    "FeedAssociation":{
      "type":"structure",
      "required":["associatedResourceName"],
      "members":{
        "associatedResourceName":{"shape":"AssociatedResourceName"}
      }
    },
    "FeedId":{
      "type":"string",
      "pattern":"[a-z0-9]{19}"
    },
    "FeedStatus":{
      "type":"string",
      "enum":[
        "CREATING",
        "AVAILABLE",
        "ACTIVE",
        "UPDATING",
        "DELETING",
        "DELETED",
        "ARCHIVED"
      ]
    },
    "FeedSummary":{
      "type":"structure",
      "required":[
        "arn",
        "id",
        "name",
        "status"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "id":{"shape":"FeedId"},
        "name":{"shape":"ResourceName"},
        "association":{"shape":"FeedAssociation"},
        "status":{"shape":"FeedStatus"}
      }
    },
    "FeedSummaryList":{
      "type":"list",
      "member":{"shape":"FeedSummary"}
    },
    "GetFeedRequest":{
      "type":"structure",
      "required":["id"],
      "members":{
        "id":{
          "shape":"FeedId",
          "location":"uri",
          "locationName":"id"
        }
      }
    },
    "GetFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "name",
        "id",
        "dataEndpoints",
        "outputs",
        "status"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "name":{"shape":"ResourceName"},
        "id":{"shape":"FeedId"},
        "dataEndpoints":{"shape":"StringList"},
        "outputs":{"shape":"GetOutputList"},
        "status":{"shape":"FeedStatus"},
        "association":{"shape":"FeedAssociation"},
        "tags":{"shape":"TagMap"}
      }
    },
    "GetOutput":{
      "type":"structure",
      "required":[
        "name",
        "outputConfig",
        "status"
      ],
      "members":{
        "name":{"shape":"ResourceName"},
        "outputConfig":{"shape":"OutputConfig"},
        "status":{"shape":"OutputStatus"},
        "description":{"shape":"ResourceDescription"},
        "fromAssociation":{"shape":"Boolean"}
      }
    },
    "GetOutputList":{
      "type":"list",
      "member":{"shape":"GetOutput"}
    },
    "InternalServerErrorException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "ListFeedsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListFeedsRequestMaxResultsInteger",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListFeedsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListFeedsResponse":{
      "type":"structure",
      "required":["feeds"],
      "members":{
        "feeds":{"shape":"FeedSummaryList"},
        "nextToken":{"shape":"String"}
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"ResourceArn",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{"shape":"TagMap"}
      }
    },
    "OutputConfig":{
      "type":"structure",
      "members":{
        "cropping":{"shape":"CroppingConfig"},
        "clipping":{"shape":"ClippingConfig"}
      },
      "union":true
    },
    "OutputStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "ResourceArn":{"type":"string"},
    "ResourceDescription":{
      "type":"string",
      "max":1024,
      "min":0,
      "pattern":"[\\w \\-\\.',@:;]*"
    },
    "ResourceName":{
      "type":"string",
      "pattern":"[a-zA-Z0-9]([a-zA-Z0-9-_]{0,126}[a-zA-Z0-9])?"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "StringList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"}
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"ResourceArn",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{"shape":"TagMap"}
      }
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TooManyRequestException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"ResourceArn",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UpdateFeedRequest":{
      "type":"structure",
      "required":[
        "name",
        "id",
        "outputs"
      ],
      "members":{
        "name":{"shape":"ResourceName"},
        "id":{
          "shape":"FeedId",
          "location":"uri",
          "locationName":"id"
        },
        "outputs":{"shape":"UpdateOutputList"}
      }
    },
    "UpdateFeedResponse":{
      "type":"structure",
      "required":[
        "arn",
        "name",
        "id",
        "dataEndpoints",
        "outputs",
        "status"
      ],
      "members":{
        "arn":{"shape":"FeedArn"},
        "name":{"shape":"ResourceName"},
        "id":{"shape":"FeedId"},
        "dataEndpoints":{"shape":"StringList"},
        "outputs":{"shape":"GetOutputList"},
        "status":{"shape":"FeedStatus"},
        "association":{"shape":"FeedAssociation"},
        "tags":{"shape":"TagMap"}
      }
    },
    "UpdateOutput":{
      "type":"structure",
      "required":[
        "name",
        "outputConfig",
        "status"
      ],
      "members":{
        "name":{"shape":"ResourceName"},
        "outputConfig":{"shape":"OutputConfig"},
        "status":{"shape":"OutputStatus"},
        "description":{"shape":"ResourceDescription"},
        "fromAssociation":{"shape":"Boolean"}
      }
    },
    "UpdateOutputList":{
      "type":"list",
      "member":{"shape":"UpdateOutput"}
    },
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  }
}
