{
  "metadata": {
    "apiVersion": "2014-11-13",
    "endpointPrefix": "ecs",
    "serviceAbbreviation": "Amazon ECS",
    "serviceFullName": "Amazon EC2 Container Service",
    "signatureVersion": "v4",
    "signingName": "ecs",
    "xmlNamespace": "http://ecs.amazonaws.com/doc/2014-11-13/",
    "protocol": "query"
  },
  "operations": {
    "CreateCluster": {
      "input": {
        "type": "structure",
        "members": {
          "clusterName": {}
        }
      },
      "output": {
        "resultWrapper": "CreateClusterResult",
        "type": "structure",
        "members": {
          "cluster": {
            "shape": "S4"
          }
        }
      }
    },
    "DeleteCluster": {
      "input": {
        "type": "structure",
        "required": [
          "cluster"
        ],
        "members": {
          "cluster": {}
        }
      },
      "output": {
        "resultWrapper": "DeleteClusterResult",
        "type": "structure",
        "members": {
          "cluster": {
            "shape": "S4"
          }
        }
      }
    },
    "DeregisterContainerInstance": {
      "input": {
        "type": "structure",
        "required": [
          "containerInstance"
        ],
        "members": {
          "cluster": {},
          "containerInstance": {},
          "force": {
            "type": "boolean"
          }
        }
      },
      "output": {
        "resultWrapper": "DeregisterContainerInstanceResult",
        "type": "structure",
        "members": {
          "containerInstance": {
            "shape": "Sa"
          }
        }
      }
    },
    "DeregisterTaskDefinition": {
      "input": {
        "type": "structure",
        "required": [
          "taskDefinition"
        ],
        "members": {
          "taskDefinition": {}
        }
      },
      "output": {
        "resultWrapper": "DeregisterTaskDefinitionResult",
        "type": "structure",
        "members": {
          "taskDefinition": {
            "shape": "Sk"
          }
        }
      }
    },
    "DescribeClusters": {
      "input": {
        "type": "structure",
        "members": {
          "clusters": {
            "shape": "Sg"
          }
        }
      },
      "output": {
        "resultWrapper": "DescribeClustersResult",
        "type": "structure",
        "members": {
          "clusters": {
            "type": "list",
            "member": {
              "shape": "S4"
            }
          },
          "failures": {
            "shape": "Su"
          }
        }
      }
    },
    "DescribeContainerInstances": {
      "input": {
        "type": "structure",
        "required": [
          "containerInstances"
        ],
        "members": {
          "cluster": {},
          "containerInstances": {
            "shape": "Sg"
          }
        }
      },
      "output": {
        "resultWrapper": "DescribeContainerInstancesResult",
        "type": "structure",
        "members": {
          "containerInstances": {
            "type": "list",
            "member": {
              "shape": "Sa"
            }
          },
          "failures": {
            "shape": "Su"
          }
        }
      }
    },
    "DescribeTaskDefinition": {
      "input": {
        "type": "structure",
        "required": [
          "taskDefinition"
        ],
        "members": {
          "taskDefinition": {}
        }
      },
      "output": {
        "resultWrapper": "DescribeTaskDefinitionResult",
        "type": "structure",
        "members": {
          "taskDefinition": {
            "shape": "Sk"
          }
        }
      }
    },
    "DescribeTasks": {
      "input": {
        "type": "structure",
        "required": [
          "tasks"
        ],
        "members": {
          "cluster": {},
          "tasks": {
            "shape": "Sg"
          }
        }
      },
      "output": {
        "resultWrapper": "DescribeTasksResult",
        "type": "structure",
        "members": {
          "tasks": {
            "shape": "S13"
          },
          "failures": {
            "shape": "Su"
          }
        }
      }
    },
    "DiscoverPollEndpoint": {
      "input": {
        "type": "structure",
        "members": {
          "containerInstance": {}
        }
      },
      "output": {
        "resultWrapper": "DiscoverPollEndpointResult",
        "type": "structure",
        "members": {
          "endpoint": {}
        }
      }
    },
    "ListClusters": {
      "input": {
        "type": "structure",
        "members": {
          "nextToken": {},
          "maxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "resultWrapper": "ListClustersResult",
        "type": "structure",
        "members": {
          "clusterArns": {
            "shape": "Sg"
          },
          "nextToken": {}
        }
      }
    },
    "ListContainerInstances": {
      "input": {
        "type": "structure",
        "members": {
          "cluster": {},
          "nextToken": {},
          "maxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "resultWrapper": "ListContainerInstancesResult",
        "type": "structure",
        "members": {
          "containerInstanceArns": {
            "shape": "Sg"
          },
          "nextToken": {}
        }
      }
    },
    "ListTaskDefinitions": {
      "input": {
        "type": "structure",
        "members": {
          "familyPrefix": {},
          "nextToken": {},
          "maxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "resultWrapper": "ListTaskDefinitionsResult",
        "type": "structure",
        "members": {
          "taskDefinitionArns": {
            "shape": "Sg"
          },
          "nextToken": {}
        }
      }
    },
    "ListTasks": {
      "input": {
        "type": "structure",
        "members": {
          "cluster": {},
          "containerInstance": {},
          "family": {},
          "nextToken": {},
          "maxResults": {
            "type": "integer"
          }
        }
      },
      "output": {
        "resultWrapper": "ListTasksResult",
        "type": "structure",
        "members": {
          "taskArns": {
            "shape": "Sg"
          },
          "nextToken": {}
        }
      }
    },
    "RegisterContainerInstance": {
      "input": {
        "type": "structure",
        "members": {
          "cluster": {},
          "instanceIdentityDocument": {},
          "instanceIdentityDocumentSignature": {},
          "totalResources": {
            "shape": "Sb"
          }
        }
      },
      "output": {
        "resultWrapper": "RegisterContainerInstanceResult",
        "type": "structure",
        "members": {
          "containerInstance": {
            "shape": "Sa"
          }
        }
      }
    },
    "RegisterTaskDefinition": {
      "input": {
        "type": "structure",
        "required": [
          "family",
          "containerDefinitions"
        ],
        "members": {
          "family": {},
          "containerDefinitions": {
            "shape": "Sl"
          }
        }
      },
      "output": {
        "resultWrapper": "RegisterTaskDefinitionResult",
        "type": "structure",
        "members": {
          "taskDefinition": {
            "shape": "Sk"
          }
        }
      }
    },
    "RunTask": {
      "input": {
        "type": "structure",
        "required": [
          "taskDefinition"
        ],
        "members": {
          "cluster": {},
          "taskDefinition": {},
          "overrides": {
            "shape": "S15"
          },
          "count": {
            "type": "integer"
          }
        }
      },
      "output": {
        "resultWrapper": "RunTaskResult",
        "type": "structure",
        "members": {
          "tasks": {
            "shape": "S13"
          },
          "failures": {
            "shape": "Su"
          }
        }
      }
    },
    "StartTask": {
      "input": {
        "type": "structure",
        "required": [
          "taskDefinition",
          "containerInstances"
        ],
        "members": {
          "cluster": {},
          "taskDefinition": {},
          "overrides": {
            "shape": "S15"
          },
          "containerInstances": {
            "shape": "Sg"
          }
        }
      },
      "output": {
        "resultWrapper": "StartTaskResult",
        "type": "structure",
        "members": {
          "tasks": {
            "shape": "S13"
          },
          "failures": {
            "shape": "Su"
          }
        }
      }
    },
    "StopTask": {
      "input": {
        "type": "structure",
        "required": [
          "task"
        ],
        "members": {
          "cluster": {},
          "task": {}
        }
      },
      "output": {
        "resultWrapper": "StopTaskResult",
        "type": "structure",
        "members": {
          "task": {
            "shape": "S14"
          }
        }
      }
    },
    "SubmitContainerStateChange": {
      "input": {
        "type": "structure",
        "members": {
          "cluster": {},
          "task": {},
          "containerName": {},
          "status": {},
          "exitCode": {
            "type": "integer"
          },
          "reason": {},
          "networkBindings": {
            "shape": "S1b"
          }
        }
      },
      "output": {
        "resultWrapper": "SubmitContainerStateChangeResult",
        "type": "structure",
        "members": {
          "acknowledgment": {}
        }
      }
    },
    "SubmitTaskStateChange": {
      "input": {
        "type": "structure",
        "members": {
          "cluster": {},
          "task": {},
          "status": {},
          "reason": {}
        }
      },
      "output": {
        "resultWrapper": "SubmitTaskStateChangeResult",
        "type": "structure",
        "members": {
          "acknowledgment": {}
        }
      }
    }
  },
  "shapes": {
    "S4": {
      "type": "structure",
      "members": {
        "clusterArn": {},
        "clusterName": {},
        "status": {}
      }
    },
    "Sa": {
      "type": "structure",
      "members": {
        "containerInstanceArn": {},
        "ec2InstanceId": {},
        "remainingResources": {
          "shape": "Sb"
        },
        "registeredResources": {
          "shape": "Sb"
        },
        "status": {},
        "agentConnected": {
          "type": "boolean"
        }
      }
    },
    "Sb": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "name": {},
          "type": {},
          "doubleValue": {
            "type": "double"
          },
          "longValue": {
            "type": "long"
          },
          "integerValue": {
            "type": "integer"
          },
          "stringSetValue": {
            "shape": "Sg"
          }
        }
      }
    },
    "Sg": {
      "type": "list",
      "member": {}
    },
    "Sk": {
      "type": "structure",
      "members": {
        "taskDefinitionArn": {},
        "containerDefinitions": {
          "shape": "Sl"
        },
        "family": {},
        "revision": {
          "type": "integer"
        }
      }
    },
    "Sl": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "name": {},
          "image": {},
          "cpu": {
            "type": "integer"
          },
          "memory": {
            "type": "integer"
          },
          "links": {
            "shape": "Sg"
          },
          "portMappings": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "containerPort": {
                  "type": "integer"
                },
                "hostPort": {
                  "type": "integer"
                }
              }
            }
          },
          "essential": {
            "type": "boolean"
          },
          "entryPoint": {
            "shape": "Sg"
          },
          "command": {
            "shape": "Sg"
          },
          "environment": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "name": {},
                "value": {}
              }
            }
          }
        }
      }
    },
    "Su": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "arn": {},
          "reason": {}
        }
      }
    },
    "S13": {
      "type": "list",
      "member": {
        "shape": "S14"
      }
    },
    "S14": {
      "type": "structure",
      "members": {
        "taskArn": {},
        "clusterArn": {},
        "taskDefinitionArn": {},
        "containerInstanceArn": {},
        "overrides": {
          "shape": "S15"
        },
        "lastStatus": {},
        "desiredStatus": {},
        "containers": {
          "type": "list",
          "member": {
            "type": "structure",
            "members": {
              "containerArn": {},
              "taskArn": {},
              "name": {},
              "lastStatus": {},
              "exitCode": {
                "type": "integer"
              },
              "reason": {},
              "networkBindings": {
                "shape": "S1b"
              }
            }
          }
        }
      }
    },
    "S15": {
      "type": "structure",
      "members": {
        "containerOverrides": {
          "type": "list",
          "member": {
            "type": "structure",
            "members": {
              "name": {},
              "command": {
                "shape": "Sg"
              }
            }
          }
        }
      }
    },
    "S1b": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "bindIP": {},
          "containerPort": {
            "type": "integer"
          },
          "hostPort": {
            "type": "integer"
          }
        }
      }
    }
  }
}