{
  "swagger": "2.0",
  "info": {
    "title": "Controller API",
    "version": "version not set"
  },
  "schemes": [
    "https",
    "http"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v1/accounts": {
      "get": {
        "summary": "Lists all Accounts in a specific Auth Method.",
        "operationId": "AccountService_ListAccounts",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListAccountsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "auth_method_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      },
      "post": {
        "summary": "Creates a single Account in the provided Auth Method.",
        "operationId": "AccountService_CreateAccount",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      }
    },
    "/v1/accounts/{id}": {
      "get": {
        "summary": "Gets a single Account.",
        "operationId": "AccountService_GetAccount",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      },
      "delete": {
        "summary": "Deletes an Account.",
        "operationId": "AccountService_DeleteAccount",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteAccountResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      },
      "patch": {
        "summary": "Updates an Account.",
        "operationId": "AccountService_UpdateAccount",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      }
    },
    "/v1/accounts/{id}:change-password": {
      "post": {
        "summary": "Sets the password for the provided Account.",
        "operationId": "AccountService_ChangePassword",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ChangePasswordRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      }
    },
    "/v1/accounts/{id}:set-password": {
      "post": {
        "summary": "Sets the password for the provided Account.",
        "operationId": "AccountService_SetPassword",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetPasswordRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.AccountService"
        ]
      }
    },
    "/v1/auth-methods": {
      "get": {
        "summary": "Lists all Auth Methods.",
        "operationId": "AuthMethodService_ListAuthMethods",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListAuthMethodsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthMethodService"
        ]
      },
      "post": {
        "summary": "Creates a single Auth Method.",
        "operationId": "AuthMethodService_CreateAuthMethod",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthMethodService"
        ]
      }
    },
    "/v1/auth-methods/{auth_method_id}:authenticate": {
      "post": {
        "summary": "Authenticate a user to an scope and retrieve an authentication token.",
        "operationId": "AuthenticationService_Authenticate",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authtokens.v1.AuthToken"
            }
          }
        },
        "parameters": [
          {
            "name": "auth_method_id",
            "description": "The ID of the Auth Method in the system that should be used for authentication.",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AuthenticateRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthenticationService"
        ]
      }
    },
    "/v1/auth-methods/{id}": {
      "get": {
        "summary": "Gets a single Auth Method.",
        "operationId": "AuthMethodService_GetAuthMethod",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthMethodService"
        ]
      },
      "delete": {
        "summary": "Deletes an AuthMethod",
        "operationId": "AuthMethodService_DeleteAuthMethod",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteAuthMethodResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthMethodService"
        ]
      },
      "patch": {
        "summary": "Updates an Auth Method.",
        "operationId": "AuthMethodService_UpdateAuthMethod",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthMethodService"
        ]
      }
    },
    "/v1/auth-tokens": {
      "get": {
        "summary": "Lists all Auth Tokens.",
        "operationId": "AuthTokenService_ListAuthTokens",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListAuthTokensResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthTokenService"
        ]
      }
    },
    "/v1/auth-tokens/{id}": {
      "get": {
        "summary": "Gets a single Auth Token.",
        "operationId": "AuthTokenService_GetAuthToken",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.authtokens.v1.AuthToken"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthTokenService"
        ]
      },
      "delete": {
        "summary": "Deletes an Auth Token.",
        "operationId": "AuthTokenService_DeleteAuthToken",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteAuthTokenResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.AuthTokenService"
        ]
      }
    },
    "/v1/groups": {
      "get": {
        "summary": "Lists all Groups.",
        "operationId": "GroupService_ListGroups",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListGroupsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      },
      "post": {
        "summary": "Creates a single Group.",
        "operationId": "GroupService_CreateGroup",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      }
    },
    "/v1/groups/{id}": {
      "get": {
        "summary": "Gets a single Group.",
        "operationId": "GroupService_GetGroup",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      },
      "delete": {
        "summary": "Deletes a Group.",
        "operationId": "GroupService_DeleteGroup",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteGroupResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      },
      "patch": {
        "summary": "Updates a Group.",
        "operationId": "GroupService_UpdateGroup",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      }
    },
    "/v1/groups/{id}:add-members": {
      "post": {
        "summary": "Adds members to a Group.",
        "operationId": "GroupService_AddGroupMembers",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddGroupMembersRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      }
    },
    "/v1/groups/{id}:remove-members": {
      "post": {
        "summary": "Removes the specified members from a Group.",
        "operationId": "GroupService_RemoveGroupMembers",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveGroupMembersRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      }
    },
    "/v1/groups/{id}:set-members": {
      "post": {
        "summary": "Set a Group's members to exactly the list of provided in the request, removing any members that are not specified.",
        "operationId": "GroupService_SetGroupMembers",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetGroupMembersRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.GroupService"
        ]
      }
    },
    "/v1/host-catalogs": {
      "get": {
        "summary": "Gets a list of Host Catalogs.",
        "operationId": "HostCatalogService_ListHostCatalogs",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListHostCatalogsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostCatalogService"
        ]
      },
      "post": {
        "summary": "Creates a Host Catalog",
        "operationId": "HostCatalogService_CreateHostCatalog",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostCatalogService"
        ]
      }
    },
    "/v1/host-catalogs/{id}": {
      "get": {
        "summary": "Gets a single Host Catalog.",
        "operationId": "HostCatalogService_GetHostCatalog",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostCatalogService"
        ]
      },
      "delete": {
        "summary": "Deletes a Host Catalog",
        "operationId": "HostCatalogService_DeleteHostCatalog",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteHostCatalogResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostCatalogService"
        ]
      },
      "patch": {
        "summary": "Updates a Host Catalog",
        "operationId": "HostCatalogService_UpdateHostCatalog",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostCatalogService"
        ]
      }
    },
    "/v1/host-sets": {
      "get": {
        "summary": "List all Host Sets under the specific Catalog.",
        "operationId": "HostSetService_ListHostSets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListHostSetsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "host_catalog_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      },
      "post": {
        "summary": "Create a Host Set.",
        "operationId": "HostSetService_CreateHostSet",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      }
    },
    "/v1/host-sets/{id}": {
      "get": {
        "summary": "Get a single Host Set.",
        "operationId": "HostSetService_GetHostSet",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      },
      "delete": {
        "summary": "Delete a Host Set.",
        "operationId": "HostSetService_DeleteHostSet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteHostSetResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      },
      "patch": {
        "summary": "Update a Host Set.",
        "operationId": "HostSetService_UpdateHostSet",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      }
    },
    "/v1/host-sets/{id}:add-hosts": {
      "post": {
        "summary": "Adds existing Hosts to a Host Set.",
        "operationId": "HostSetService_AddHostSetHosts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddHostSetHostsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      }
    },
    "/v1/host-sets/{id}:remove-hosts": {
      "post": {
        "summary": "Removes Hosts from the Host Set.",
        "operationId": "HostSetService_RemoveHostSetHosts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveHostSetHostsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      }
    },
    "/v1/host-sets/{id}:set-hosts": {
      "post": {
        "summary": "Sets the Hosts on the Host Set.",
        "operationId": "HostSetService_SetHostSetHosts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetHostSetHostsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostSetService"
        ]
      }
    },
    "/v1/hosts": {
      "get": {
        "summary": "List all Hosts for the specified Catalog.",
        "operationId": "HostService_ListHosts",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListHostsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "host_catalog_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostService"
        ]
      },
      "post": {
        "summary": "Create a single Host.",
        "operationId": "HostService_CreateHost",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.HostService"
        ]
      }
    },
    "/v1/hosts/{id}": {
      "get": {
        "summary": "Gets a single Host.",
        "operationId": "HostService_GetHost",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostService"
        ]
      },
      "delete": {
        "summary": "Delete a Host.",
        "operationId": "HostService_DeleteHost",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteHostResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostService"
        ]
      },
      "patch": {
        "summary": "Update a Host.",
        "operationId": "HostService_UpdateHost",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.HostService"
        ]
      }
    },
    "/v1/roles": {
      "get": {
        "summary": "Lists all Roles.",
        "operationId": "RoleService_ListRoles",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListRolesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      },
      "post": {
        "summary": "Creates a single Role.",
        "operationId": "RoleService_CreateRole",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}": {
      "get": {
        "summary": "Gets a single Role.",
        "operationId": "RoleService_GetRole",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      },
      "delete": {
        "summary": "Deletes a Role.",
        "operationId": "RoleService_DeleteRole",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteRoleResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      },
      "patch": {
        "summary": "Updates a Role.",
        "operationId": "RoleService_UpdateRole",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:add-grants": {
      "post": {
        "summary": "Adds grants to a Role",
        "operationId": "RoleService_AddRoleGrants",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddRoleGrantsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:add-principals": {
      "post": {
        "summary": "Adds Users and/or Groups to a Role.",
        "operationId": "RoleService_AddRolePrincipals",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddRolePrincipalsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:remove-grants": {
      "post": {
        "summary": "Removes grants from a Role.",
        "operationId": "RoleService_RemoveRoleGrants",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveRoleGrantsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:remove-principals": {
      "post": {
        "summary": "Removes the specified Users and/or Groups from a Role.",
        "operationId": "RoleService_RemoveRolePrincipals",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveRolePrincipalsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:set-grants": {
      "post": {
        "summary": "Set grants for a Role, removing any grants that are not specified in the request.",
        "operationId": "RoleService_SetRoleGrants",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetRoleGrantsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/roles/{id}:set-principals": {
      "post": {
        "summary": "Set Users and/or Groups to a Role, removing any principals that are not specified in the request.",
        "operationId": "RoleService_SetRolePrincipals",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetRolePrincipalsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.RoleService"
        ]
      }
    },
    "/v1/scopes": {
      "get": {
        "summary": "Lists all Scopes within the Scope provided in the request.",
        "operationId": "ScopeService_ListScopes",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListScopesResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.ScopeService"
        ]
      },
      "post": {
        "summary": "Creates a single Scope.",
        "operationId": "ScopeService_CreateScope",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
            }
          },
          {
            "name": "skip_admin_role_creation",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "skip_default_role_creation",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "controller.api.services.v1.ScopeService"
        ]
      }
    },
    "/v1/scopes/{id}": {
      "get": {
        "summary": "Gets a single Scope.",
        "operationId": "ScopeService_GetScope",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.ScopeService"
        ]
      },
      "delete": {
        "summary": "Deletes a Scope.",
        "operationId": "ScopeService_DeleteScope",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteScopeResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.ScopeService"
        ]
      },
      "patch": {
        "summary": "Updates a Scope.",
        "operationId": "ScopeService_UpdateScope",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.ScopeService"
        ]
      }
    },
    "/v1/sessions": {
      "get": {
        "summary": "Lists all Sessions.",
        "operationId": "SessionService_ListSessions",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListSessionsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.SessionService"
        ]
      }
    },
    "/v1/sessions/{id}": {
      "get": {
        "summary": "Gets a single Session.",
        "operationId": "SessionService_GetSession",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.sessions.v1.Session"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.SessionService"
        ]
      }
    },
    "/v1/sessions/{id}:cancel": {
      "post": {
        "summary": "Cancels a Session.",
        "operationId": "SessionService_CancelSession",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.sessions.v1.Session"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.CancelSessionRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.SessionService"
        ]
      }
    },
    "/v1/targets": {
      "get": {
        "summary": "Lists all Targets.",
        "operationId": "TargetService_ListTargets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListTargetsResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      },
      "post": {
        "summary": "Creates a single Target.",
        "operationId": "TargetService_CreateTarget",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/targets/{id}": {
      "get": {
        "summary": "Gets a single Target.",
        "operationId": "TargetService_GetTarget",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      },
      "delete": {
        "summary": "Deletes a Target.",
        "operationId": "TargetService_DeleteTarget",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteTargetResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      },
      "patch": {
        "summary": "Updates a Target.",
        "operationId": "TargetService_UpdateTarget",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/targets/{id}:add-host-sets": {
      "post": {
        "summary": "Adds existing Host Sets to a Target.",
        "operationId": "TargetService_AddTargetHostSets",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddTargetHostSetsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/targets/{id}:authorize": {
      "post": {
        "summary": "Authorizes a Session.",
        "operationId": "TargetService_AuthorizeSession",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.SessionAuthorization"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AuthorizeSessionRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/targets/{id}:remove-host-sets": {
      "post": {
        "summary": "Removes Host Sets from the Target.",
        "operationId": "TargetService_RemoveTargetHostSets",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveTargetHostSetsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/targets/{id}:set-host-sets": {
      "post": {
        "summary": "Sets the Host Sets on the Target.",
        "operationId": "TargetService_SetTargetHostSets",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetTargetHostSetsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.TargetService"
        ]
      }
    },
    "/v1/users": {
      "get": {
        "summary": "Lists all Users.",
        "operationId": "UserService_ListUsers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.ListUsersResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "scope_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      },
      "post": {
        "summary": "Creates a single User.",
        "operationId": "UserService_CreateUser",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      }
    },
    "/v1/users/{id}": {
      "get": {
        "summary": "Gets a single User.",
        "operationId": "UserService_GetUser",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      },
      "delete": {
        "summary": "Deletes a User.",
        "operationId": "UserService_DeleteUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.DeleteUserResponse"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      },
      "patch": {
        "summary": "Updates a User.",
        "operationId": "UserService_UpdateUser",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          },
          {
            "name": "update_mask",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      }
    },
    "/v1/users/{id}:add-accounts": {
      "post": {
        "summary": "Associates an Account to a User.",
        "operationId": "UserService_AddUserAccounts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.AddUserAccountsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      }
    },
    "/v1/users/{id}:remove-accounts": {
      "post": {
        "summary": "Removes the specified Accounts from being associated with the provided User.",
        "operationId": "UserService_RemoveUserAccounts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.RemoveUserAccountsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      }
    },
    "/v1/users/{id}:set-accounts": {
      "post": {
        "summary": "Set the Accounts associated to the User to exactly the list of provided in the request, removing any Accounts that are not specified.",
        "operationId": "UserService_SetUserAccounts",
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/controller.api.resources.users.v1.User"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/controller.api.services.v1.SetUserAccountsRequest"
            }
          }
        ],
        "tags": [
          "controller.api.services.v1.UserService"
        ]
      }
    }
  },
  "definitions": {
    "controller.api.resources.accounts.v1.Account": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Account.",
          "readOnly": true
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for the Account.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of this Account."
        },
        "auth_method_id": {
          "type": "string",
          "description": "The ID of the Auth Method that is associated with this Account."
        },
        "attributes": {
          "type": "object",
          "description": "The attributes that are applicable for the specific Account type."
        }
      },
      "title": "Account contains all fields related to an Account resource"
    },
    "controller.api.resources.authmethods.v1.AuthMethod": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Auth Method.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the Scope of which this Auth Method is a part."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this Auth method.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The Auth Method type."
        },
        "attributes": {
          "type": "object",
          "description": "The attributes that are applicable for the specific Auth Method type."
        }
      },
      "title": "AuthMethod contains all fields related to an Auth Method resource"
    },
    "controller.api.resources.authtokens.v1.AuthToken": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Auth Token.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The Scope in which this Auth Token was generated."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "token": {
          "type": "string",
          "description": "Output only. The token value, which will only be populated after authentication and is only ever visible to the end user whose login request resulted in this Auth Token being created.",
          "readOnly": true
        },
        "user_id": {
          "type": "string",
          "description": "Output only. The ID of the User associated with this Auth Token.",
          "readOnly": true
        },
        "auth_method_id": {
          "type": "string",
          "description": "Output only. The ID of the Auth Method associated with this Auth Token.",
          "readOnly": true
        },
        "account_id": {
          "type": "string",
          "description": "Output only. The ID of the Account associated with this Auth Token.",
          "readOnly": true
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "approximate_last_used_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The approximate time this Auth Token was last used.",
          "readOnly": true
        },
        "expiration_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this Auth Token expires.",
          "readOnly": true
        }
      },
      "title": "AuthToken contains all fields related to an Auth Token resource"
    },
    "controller.api.resources.groups.v1.Group": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Group.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the scope of which this Group is a part."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this Group.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set descripton for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "member_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Contains the list of member IDs in this Group.",
          "readOnly": true
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.groups.v1.Member"
          },
          "description": "Output only. The members of this Group.",
          "readOnly": true
        }
      },
      "title": "Group contains all fields related to a Group resource"
    },
    "controller.api.resources.groups.v1.Member": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the member.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "Output only. The Scope ID of the member.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.hostcatalogs.v1.HostCatalog": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the host.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the Scope of which this Host Catalog is a part."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of Host Catalog."
        },
        "attributes": {
          "type": "object",
          "description": "Attributes specific to the catalog type."
        }
      },
      "title": "HostCatalog manages Hosts and Host Sets"
    },
    "controller.api.resources.hosts.v1.Host": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Host.",
          "readOnly": true
        },
        "host_catalog_id": {
          "type": "string",
          "description": "The Host Catalog of which this Host is a part."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of the resource."
        },
        "host_set_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. A list of Host Sets containing this Host.",
          "readOnly": true
        },
        "attributes": {
          "type": "object",
          "description": "The attributes that are applicable to the specific Host type."
        }
      },
      "title": "Host contains all fields related to a Host resource"
    },
    "controller.api.resources.hostsets.v1.HostSet": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Host Set.",
          "readOnly": true
        },
        "host_catalog_id": {
          "type": "string",
          "description": "The Host Catalog of which this Host Set is a part."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of the Host Set."
        },
        "host_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. A list of Hosts in this Host Set.",
          "readOnly": true
        },
        "attributes": {
          "type": "object",
          "description": "The attributes that are applicable for the specific Host Set type."
        }
      },
      "title": "HostSet is a collection of Hosts created and managed by a Host Catalog"
    },
    "controller.api.resources.roles.v1.Grant": {
      "type": "object",
      "properties": {
        "raw": {
          "type": "string",
          "description": "Output only. The original user-supplied string.",
          "readOnly": true
        },
        "canonical": {
          "type": "string",
          "description": "Output only. The canonically-formatted string.",
          "readOnly": true
        },
        "json": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.GrantJson",
          "description": "Output only. The JSON representation of the grant.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.roles.v1.GrantJson": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID, if set.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Output only. The type, if set.",
          "readOnly": true
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The actions.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.roles.v1.Principal": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the principal.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Output only. The type of the principal.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "Output only. The Scope of the principal.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.roles.v1.Role": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Role.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the Scope containing this Role."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "grant_scope_id": {
          "type": "string",
          "description": "The Scope the grants will apply to. If the Role is at the global scope, this can be an org or project. If the Role is at an org scope, this can be a project within the org. It is invalid for this to be anything other than the Role's scope when the Role's scope is a project."
        },
        "principal_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The IDs (only) of principals that are assigned to this role.",
          "readOnly": true
        },
        "principals": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.roles.v1.Principal"
          },
          "description": "Output only. The principals that are assigned to this role.",
          "readOnly": true
        },
        "grant_strings": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. The grants that this role provides for its principals.",
          "readOnly": true
        },
        "grants": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.roles.v1.Grant"
          },
          "description": "Output only. The parsed grant information.",
          "readOnly": true
        }
      },
      "title": "Role contains all fields related to a Role resource"
    },
    "controller.api.resources.scopes.v1.Scope": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Scope.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the Scope this resource is in. If this is the \"global\" Scope this field will be empty."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set descripton for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of the resource."
        }
      },
      "title": "Scope contains all fields related to a Scope resource"
    },
    "controller.api.resources.scopes.v1.ScopeInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Scope.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Output only. The type of the Scope.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Output only. The name of the Scope, if any.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Output only. The description of the Scope, if any.",
          "readOnly": true
        },
        "parent_scope_id": {
          "type": "string",
          "description": "Output only. The ID of the parent Scope, if any. This field will be empty if this is the \"global\" scope.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.sessions.v1.Session": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Session.",
          "readOnly": true
        },
        "target_id": {
          "type": "string",
          "description": "Output only. The ID of the Target that created this Session.",
          "readOnly": true
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used when canceling this Session to ensure that the operation is acting on a known session state."
        },
        "type": {
          "type": "string",
          "description": "Output only. Type of the Session (e.g. tcp).",
          "readOnly": true
        },
        "expiration_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. After this time the connection will be expired, e.g. forcefully terminated.",
          "readOnly": true
        },
        "auth_token_id": {
          "type": "string",
          "description": "Output only. The ID of the Auth Token used to authenticate.",
          "readOnly": true
        },
        "user_id": {
          "type": "string",
          "description": "Output only. The ID of the User that requested the Session.",
          "readOnly": true
        },
        "host_set_id": {
          "type": "string",
          "description": "Output only. The Host Set sourcing the Host for this Session.",
          "readOnly": true
        },
        "host_id": {
          "type": "string",
          "description": "Output only. The Host used by the Session.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "Output only. The Scope of the Session.",
          "readOnly": true
        },
        "endpoint": {
          "type": "string",
          "description": "Output only. The endpoint of the Session; that is, the address to which the worker is proxying data.",
          "readOnly": true
        },
        "states": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.sessions.v1.SessionState"
          },
          "description": "Output only. The states of this Session in descending order from the current state to the first.",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "description": "Output only. The current status of this Session.",
          "readOnly": true
        },
        "worker_info": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.sessions.v1.WorkerInfo"
          },
          "description": "Output only. Worker information given to the client.",
          "readOnly": true
        },
        "certificate": {
          "type": "string",
          "format": "byte",
          "description": "Output only. The certificate generated for the session. Raw DER bytes.",
          "readOnly": true
        }
      },
      "title": "Session contains all fields related to a Session resource"
    },
    "controller.api.resources.sessions.v1.SessionState": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the Session, e.g. \"pending\", \"active\", \"canceling\", \"terminated\"."
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time the Session entered this state.",
          "readOnly": true
        },
        "end_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time the Session stopped being in this state.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.sessions.v1.WorkerInfo": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "The address of the worker."
        }
      }
    },
    "controller.api.resources.targets.v1.HostSet": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Host Set.",
          "readOnly": true
        },
        "host_catalog_id": {
          "type": "string",
          "description": "Output only. The Host Catalog to which this Host Set belongs.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.targets.v1.SessionAuthorization": {
      "type": "object",
      "properties": {
        "session_id": {
          "type": "string",
          "description": "Output only. The ID of the Session.",
          "readOnly": true
        },
        "target_id": {
          "type": "string",
          "description": "Output only. The ID of the Target authorizing this Session.",
          "readOnly": true
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "user_id": {
          "type": "string",
          "description": "Output only. The User for which this Session was authorized.",
          "readOnly": true
        },
        "host_set_id": {
          "type": "string",
          "description": "Output only. The Host Set containing the Host being used for this Session.",
          "readOnly": true
        },
        "host_id": {
          "type": "string",
          "description": "Output only. The Host whose address is being used as the endpoint for this Session.",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Output only. Type of the Session (e.g. tcp, ssh, etc.).",
          "readOnly": true
        },
        "authorization_token": {
          "type": "string",
          "description": "Output only. The marshaled SessionAuthorizationData message containing all information that the proxy needs.",
          "readOnly": true
        }
      },
      "description": "SessionAuthorization contains all fields related to authorization for a Session. It's in the Targets package because it's returned by a Target's authorize action."
    },
    "controller.api.resources.targets.v1.Target": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the resource.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The Scope of of this resource. This must be defined for creation of this resource, but is otherwise output only."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Required name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "type": {
          "type": "string",
          "description": "The type of the Target."
        },
        "host_set_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The IDs of the Host Sets associated with this Target."
        },
        "host_sets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.targets.v1.HostSet"
          },
          "description": "Output only. The Host Sets associated with this Target.",
          "readOnly": true
        },
        "session_max_seconds": {
          "type": "integer",
          "format": "int64",
          "description": "Maximum total lifetime of a created Session, in seconds."
        },
        "session_connection_limit": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum number of connections allowed in a Session.  Unlimited is indicated by the value -1."
        },
        "attributes": {
          "type": "object",
          "description": "The attributes that are applicable for the specific Target."
        }
      },
      "title": "Target contains all fields related to a Target resource"
    },
    "controller.api.resources.users.v1.Account": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the Account.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "Output only. The Scope containing the Account.",
          "readOnly": true
        }
      }
    },
    "controller.api.resources.users.v1.User": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Output only. The ID of the User.",
          "readOnly": true
        },
        "scope_id": {
          "type": "string",
          "description": "The ID of the Scope this resource is in."
        },
        "scope": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.ScopeInfo",
          "description": "Output only. Scope information for this resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Optional name for identification purposes."
        },
        "description": {
          "type": "string",
          "description": "Optional user-set description for identification purposes."
        },
        "created_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was created.",
          "readOnly": true
        },
        "updated_time": {
          "type": "string",
          "format": "date-time",
          "description": "Output only. The time this resource was last updated.",
          "readOnly": true
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used in mutation requests, after the initial creation, to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "account_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Output only. Contains the list of Account IDs linked to this User.",
          "readOnly": true
        },
        "accounts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.users.v1.Account"
          },
          "description": "Output only. The Accounts linked to this User.",
          "readOnly": true
        }
      },
      "title": "User contains all fields related to a User resource"
    },
    "controller.api.services.v1.AddGroupMembersRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "member_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.AddGroupMembersResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.AddHostSetHostsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Host IDs which will be added to this Host Set. Each Host referenced here must be a child of the same Host Catalog of which this Host Set is a child."
        }
      }
    },
    "controller.api.services.v1.AddHostSetHostsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.AddRoleGrantsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "grant_strings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.AddRoleGrantsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.AddRolePrincipalsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "principal_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.AddRolePrincipalsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.AddTargetHostSetsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_set_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.AddTargetHostSetsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.AddUserAccountsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "The version ensures the User hasn't changed since it was last retrieved and if it has the request will fail."
        },
        "account_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.AddUserAccountsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "controller.api.services.v1.AuthenticateRequest": {
      "type": "object",
      "properties": {
        "auth_method_id": {
          "type": "string",
          "description": "The ID of the Auth Method in the system that should be used for authentication."
        },
        "token_type": {
          "type": "string",
          "description": "This can be \"cookie\" or \"token\". If not provided, \"token\" will be used. \"cookie\" activates a split-cookie method where the token is split partially between http-only and regular cookies in order to keep it safe from rogue JS in the browser."
        },
        "credentials": {
          "type": "object",
          "description": "Credentials are passed to the Auth Method; the valid keys and values depend on the type of Auth Method."
        }
      }
    },
    "controller.api.services.v1.AuthenticateResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.authtokens.v1.AuthToken"
        },
        "token_type": {
          "type": "string"
        }
      }
    },
    "controller.api.services.v1.AuthorizeSessionRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "host_id": {
          "type": "string",
          "description": "An optional parameter allowing specification of the particular Host within the Target's configured Host Sets to connect to during this Session."
        }
      }
    },
    "controller.api.services.v1.AuthorizeSessionResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.SessionAuthorization"
        }
      }
    },
    "controller.api.services.v1.CancelSessionRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "controller.api.services.v1.CancelSessionResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.sessions.v1.Session"
        }
      }
    },
    "controller.api.services.v1.ChangePasswordRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "current_password": {
          "type": "string"
        },
        "new_password": {
          "type": "string"
        }
      }
    },
    "controller.api.services.v1.ChangePasswordResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
        }
      }
    },
    "controller.api.services.v1.CreateAccountResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
        }
      }
    },
    "controller.api.services.v1.CreateAuthMethodResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
        }
      }
    },
    "controller.api.services.v1.CreateGroupResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.CreateHostCatalogResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
        }
      }
    },
    "controller.api.services.v1.CreateHostResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
        }
      }
    },
    "controller.api.services.v1.CreateHostSetResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.CreateRoleResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.CreateScopeResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
        }
      }
    },
    "controller.api.services.v1.CreateTargetResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.CreateUserResponse": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        },
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "controller.api.services.v1.DeleteAccountResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteAuthMethodResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteAuthTokenResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteGroupResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteHostCatalogResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteHostResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteHostSetResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteRoleResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteScopeResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteTargetResponse": {
      "type": "object"
    },
    "controller.api.services.v1.DeleteUserResponse": {
      "type": "object"
    },
    "controller.api.services.v1.GetAccountResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
        }
      }
    },
    "controller.api.services.v1.GetAuthMethodResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
        }
      }
    },
    "controller.api.services.v1.GetAuthTokenResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.authtokens.v1.AuthToken"
        }
      }
    },
    "controller.api.services.v1.GetGroupResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.GetHostCatalogResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
        }
      }
    },
    "controller.api.services.v1.GetHostResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
        }
      }
    },
    "controller.api.services.v1.GetHostSetResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.GetRoleResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.GetScopeResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
        }
      }
    },
    "controller.api.services.v1.GetSessionResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.sessions.v1.Session"
        }
      }
    },
    "controller.api.services.v1.GetTargetResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.GetUserResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "controller.api.services.v1.ListAccountsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
          }
        }
      }
    },
    "controller.api.services.v1.ListAuthMethodsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
          }
        }
      }
    },
    "controller.api.services.v1.ListAuthTokensResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.authtokens.v1.AuthToken"
          }
        }
      }
    },
    "controller.api.services.v1.ListGroupsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
          }
        }
      }
    },
    "controller.api.services.v1.ListHostCatalogsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
          }
        }
      }
    },
    "controller.api.services.v1.ListHostSetsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
          }
        }
      }
    },
    "controller.api.services.v1.ListHostsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
          }
        }
      }
    },
    "controller.api.services.v1.ListRolesResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
          }
        }
      }
    },
    "controller.api.services.v1.ListScopesResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
          }
        }
      }
    },
    "controller.api.services.v1.ListSessionsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.sessions.v1.Session"
          }
        }
      }
    },
    "controller.api.services.v1.ListTargetsResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
          }
        }
      }
    },
    "controller.api.services.v1.ListUsersResponse": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/controller.api.resources.users.v1.User"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveGroupMembersRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "member_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveGroupMembersResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.RemoveHostSetHostsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Host IDs which will be removed from this Host Set."
        }
      }
    },
    "controller.api.services.v1.RemoveHostSetHostsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.RemoveRoleGrantsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "grant_strings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveRoleGrantsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.RemoveRolePrincipalsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "principal_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveRolePrincipalsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.RemoveTargetHostSetsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_set_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveTargetHostSetsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.RemoveUserAccountsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "The version ensures the User hasn't changed since it was last retrieved and if it has the request will fail."
        },
        "account_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.RemoveUserAccountsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "controller.api.services.v1.SetGroupMembersRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "member_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.SetGroupMembersResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.SetHostSetHostsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of Host IDs which will be set on this Host Set. Each Host referenced here must be a child of the same Host Catalog of which this Host Set is a child."
        }
      }
    },
    "controller.api.services.v1.SetHostSetHostsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.SetPasswordRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "password": {
          "type": "string"
        }
      }
    },
    "controller.api.services.v1.SetPasswordResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
        }
      }
    },
    "controller.api.services.v1.SetRoleGrantsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "grant_strings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.SetRoleGrantsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.SetRolePrincipalsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "principal_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.SetRolePrincipalsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.SetTargetHostSetsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "Version is used to ensure this resource has not changed.\nThe mutation will fail if the version does not match the latest known good version."
        },
        "host_set_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.SetTargetHostSetsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.SetUserAccountsRequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "integer",
          "format": "int64",
          "description": "The version ensures the User hasn't changed since it was last retrieved and if it has the request will fail."
        },
        "account_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "controller.api.services.v1.SetUserAccountsResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "controller.api.services.v1.UpdateAccountResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.accounts.v1.Account"
        }
      }
    },
    "controller.api.services.v1.UpdateAuthMethodResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.authmethods.v1.AuthMethod"
        }
      }
    },
    "controller.api.services.v1.UpdateGroupResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.groups.v1.Group"
        }
      }
    },
    "controller.api.services.v1.UpdateHostCatalogResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostcatalogs.v1.HostCatalog"
        }
      }
    },
    "controller.api.services.v1.UpdateHostResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hosts.v1.Host"
        }
      }
    },
    "controller.api.services.v1.UpdateHostSetResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.hostsets.v1.HostSet"
        }
      }
    },
    "controller.api.services.v1.UpdateRoleResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.roles.v1.Role"
        }
      }
    },
    "controller.api.services.v1.UpdateScopeResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.scopes.v1.Scope"
        }
      }
    },
    "controller.api.services.v1.UpdateTargetResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.targets.v1.Target"
        }
      }
    },
    "controller.api.services.v1.UpdateUserResponse": {
      "type": "object",
      "properties": {
        "item": {
          "$ref": "#/definitions/controller.api.resources.users.v1.User"
        }
      }
    },
    "google.protobuf.NullValue": {
      "type": "string",
      "enum": [
        "NULL_VALUE"
      ],
      "default": "NULL_VALUE",
      "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value."
    }
  }
}
