{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2018-05-01",
    "endpointPrefix": "chime",
    "protocol": "rest-json",
    "serviceFullName": "Amazon Chime",
    "serviceId": "Chime",
    "signatureVersion": "v4",
    "uid": "chime-2018-05-01"
  },
  "operations": {
    "BatchSuspendUser": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users?operation=suspend",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserIdList"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserIdList": {
            "shape": "S3"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "UserErrors": {
            "shape": "S5"
          }
        }
      }
    },
    "BatchUnsuspendUser": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users?operation=unsuspend",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserIdList"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserIdList": {
            "shape": "S3"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "UserErrors": {
            "shape": "S5"
          }
        }
      }
    },
    "BatchUpdateUser": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UpdateUserRequestItems"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UpdateUserRequestItems": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "UserId"
              ],
              "members": {
                "UserId": {},
                "LicenseType": {}
              }
            }
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "UserErrors": {
            "shape": "S5"
          }
        }
      }
    },
    "CreateAccount": {
      "http": {
        "requestUri": "/console/accounts",
        "responseCode": 201
      },
      "input": {
        "type": "structure",
        "required": [
          "Name"
        ],
        "members": {
          "Name": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Account": {
            "shape": "Sj"
          }
        }
      }
    },
    "DeleteAccount": {
      "http": {
        "method": "DELETE",
        "requestUri": "/console/accounts/{accountId}",
        "responseCode": 204
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "GetAccount": {
      "http": {
        "method": "GET",
        "requestUri": "/console/accounts/{accountId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Account": {
            "shape": "Sj"
          }
        }
      }
    },
    "GetAccountSettings": {
      "http": {
        "method": "GET",
        "requestUri": "/console/accounts/{accountId}/settings"
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "AccountSettings": {
            "shape": "St"
          }
        }
      }
    },
    "GetUser": {
      "http": {
        "method": "GET",
        "requestUri": "/console/accounts/{accountId}/users/{userId}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserId": {
            "location": "uri",
            "locationName": "userId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "User": {
            "shape": "Sx"
          }
        }
      }
    },
    "InviteUsers": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users?operation=add",
        "responseCode": 201
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserEmailList"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserEmailList": {
            "type": "list",
            "member": {
              "shape": "Sy"
            }
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Invites": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "InviteId": {},
                "Status": {},
                "EmailAddress": {
                  "shape": "Sy"
                },
                "EmailStatus": {}
              }
            }
          }
        }
      }
    },
    "ListAccounts": {
      "http": {
        "method": "GET",
        "requestUri": "/console/accounts"
      },
      "input": {
        "type": "structure",
        "members": {
          "Name": {
            "location": "querystring",
            "locationName": "name"
          },
          "UserEmail": {
            "shape": "Sy",
            "location": "querystring",
            "locationName": "user-email"
          },
          "NextToken": {
            "location": "querystring",
            "locationName": "next-token"
          },
          "MaxResults": {
            "location": "querystring",
            "locationName": "max-results",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Accounts": {
            "type": "list",
            "member": {
              "shape": "Sj"
            }
          },
          "NextToken": {}
        }
      }
    },
    "ListUsers": {
      "http": {
        "method": "GET",
        "requestUri": "/console/accounts/{accountId}/users",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserEmail": {
            "shape": "Sy",
            "location": "querystring",
            "locationName": "user-email"
          },
          "MaxResults": {
            "location": "querystring",
            "locationName": "max-results",
            "type": "integer"
          },
          "NextToken": {
            "location": "querystring",
            "locationName": "next-token"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Users": {
            "type": "list",
            "member": {
              "shape": "Sx"
            }
          },
          "NextToken": {}
        }
      }
    },
    "LogoutUser": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users/{userId}?operation=logout",
        "responseCode": 204
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserId": {
            "location": "uri",
            "locationName": "userId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "ResetPersonalPIN": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users/{userId}?operation=reset-personal-pin",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserId": {
            "location": "uri",
            "locationName": "userId"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "User": {
            "shape": "Sx"
          }
        }
      }
    },
    "UpdateAccount": {
      "http": {
        "requestUri": "/console/accounts/{accountId}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "Name": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Account": {
            "shape": "Sj"
          }
        }
      }
    },
    "UpdateAccountSettings": {
      "http": {
        "method": "PUT",
        "requestUri": "/console/accounts/{accountId}/settings",
        "responseCode": 204
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "AccountSettings"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "AccountSettings": {
            "shape": "St"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateUser": {
      "http": {
        "requestUri": "/console/accounts/{accountId}/users/{userId}",
        "responseCode": 200
      },
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "UserId"
        ],
        "members": {
          "AccountId": {
            "location": "uri",
            "locationName": "accountId"
          },
          "UserId": {
            "location": "uri",
            "locationName": "userId"
          },
          "LicenseType": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "User": {
            "shape": "Sx"
          }
        }
      }
    }
  },
  "shapes": {
    "S3": {
      "type": "list",
      "member": {}
    },
    "S5": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "UserId": {},
          "ErrorCode": {},
          "ErrorMessage": {}
        }
      }
    },
    "Sj": {
      "type": "structure",
      "required": [
        "AwsAccountId",
        "AccountId",
        "Name"
      ],
      "members": {
        "AwsAccountId": {},
        "AccountId": {},
        "Name": {},
        "AccountType": {},
        "CreatedTimestamp": {
          "shape": "Sl"
        },
        "DefaultLicense": {},
        "SupportedLicenses": {
          "type": "list",
          "member": {}
        }
      }
    },
    "Sl": {
      "type": "timestamp",
      "timestampFormat": "iso8601"
    },
    "St": {
      "type": "structure",
      "members": {
        "DisableRemoteControl": {
          "type": "boolean"
        },
        "EnableDialOut": {
          "type": "boolean"
        }
      }
    },
    "Sx": {
      "type": "structure",
      "required": [
        "UserId"
      ],
      "members": {
        "UserId": {},
        "AccountId": {},
        "PrimaryEmail": {
          "shape": "Sy"
        },
        "DisplayName": {
          "type": "string",
          "sensitive": true
        },
        "LicenseType": {},
        "UserRegistrationStatus": {},
        "UserInvitationStatus": {},
        "RegisteredOn": {
          "shape": "Sl"
        },
        "InvitedOn": {
          "shape": "Sl"
        },
        "PersonalPIN": {}
      }
    },
    "Sy": {
      "type": "string",
      "sensitive": true
    }
  }
}