krystal/go-katapult

View on GitHub
next/katapult-core-openapi.json

Summary

Maintainability
Test Coverage
{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "Katapult Core API",
    "description": "Welcome to the documentation for the Katapult Core API"
  },
  "servers": [
    {
      "url": "https://api.katapult.io/core/v1"
    }
  ],
  "paths": {
    "/data_centers": {
      "get": {
        "operationId": "get:data_centers",
        "tags": [
          "Core"
        ],
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "Provides a full list of all data centers",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data_centers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetDataCenters200ResponseDataCenters"
                      }
                    }
                  },
                  "required": [
                    "data_centers"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/data_centers/:data_center": {
      "get": {
        "operationId": "get:data_center",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "data_center[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'data_center[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "data_center[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'data_center[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Provide details for a specific data center",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data_center": {
                      "$ref": "#/components/schemas/GetDataCenter200ResponseDataCenter"
                    }
                  },
                  "required": [
                    "data_center"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DataCenterNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/data_centers/:data_center/default_network": {
      "get": {
        "operationId": "get:data_center_default_network",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "data_center[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'data_center[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "data_center[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'data_center[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Provide details of default network for a data center",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "network": {
                      "description": "The details for the requested network",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDataCenterDefaultNetwork200ResponseNetwork"
                        }
                      ]
                    }
                  },
                  "required": [
                    "network"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DataCenterNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations": {
      "get": {
        "operationId": "get:organizations",
        "tags": [
          "Core"
        ],
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "This will return a list of all organizations the authenticated identity has access to",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "organizations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizations200ResponseOrganizations"
                      }
                    }
                  },
                  "required": [
                    "organizations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization": {
      "get": {
        "operationId": "get:organization",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns information about a specific organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "organization": {
                      "$ref": "#/components/schemas/Organization"
                    }
                  },
                  "required": [
                    "organization"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/policy_limits": {
      "get": {
        "operationId": "get:organization_policy_limits",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the computed policy limits for a organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "policy_limits": {
                      "$ref": "#/components/schemas/OrganizationPolicy"
                    }
                  },
                  "required": [
                    "policy_limits"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/users_with_access": {
      "get": {
        "operationId": "get:organization_users_with_access",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "This will return a simple list of users with any access to this organization. This\nendpoint is available to all users with access to the organization therefore allows\nthem to see a small amount of information about their peers. This is useful when\ncombined with other API actions that require the ID of a fellow user (such as when\ndetermining which users to assign a virtual machine).\n",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "users": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationUsersWithAccess200ResponseUsers"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "users"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/managed": {
      "get": {
        "operationId": "get:organization_managed",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List all managed organizations owned by the given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "organizations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationManaged200ResponseOrganizations"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "organizations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_managed",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "name": {
                    "type": "string"
                  },
                  "sub_domain": {
                    "type": "string"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "name",
                  "sub_domain"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new managed organization within an existing organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "organization": {
                      "$ref": "#/components/schemas/Organization"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "organization",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/OrganizationLimitReachedValidationError422Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/disks": {
      "get": {
        "operationId": "get:organization_disks",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disks for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disks for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all disks owned by an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationDisks200ResponseDisk"
                      },
                      "description": "The list of disks"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_disks",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DiskArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new disk for a given organization.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been created.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostOrganizationDisks201ResponseDisk"
                        }
                      ]
                    },
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      },
                      "description": "Annotations for this disk"
                    }
                  },
                  "required": [
                    "disk",
                    "task",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/TaskQueueingErrorResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk": {
      "get": {
        "operationId": "get:disk",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk to return. All 'disk[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific disk",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDisk200ResponseDisk"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "disk",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:disk",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DiskArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "disk",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update a disk for a given organization.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been updated.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchDisk200ResponseDisk"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      },
                      "description": "Annotations for this disk"
                    }
                  },
                  "required": [
                    "disk",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnassignedDiskValidationError422Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:disk",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  }
                },
                "required": [
                  "disk"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Deletes a disk and moves it to the trash",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been move to the trash.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteDisk200ResponseDisk"
                        }
                      ]
                    },
                    "trash_object": {
                      "$ref": "#/components/schemas/TrashObject"
                    }
                  },
                  "required": [
                    "disk",
                    "trash_object"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/assign": {
      "post": {
        "operationId": "post:disk_assign",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  },
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "disk",
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Assign a disk to a virtual machine.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been assigned to a virtual machine.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostDiskAssign200ResponseDisk"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundVirtualMachineNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnableToAssignResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/unassign": {
      "post": {
        "operationId": "post:disk_unassign",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  }
                },
                "required": [
                  "disk"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Unassign a disk from a virtual machine.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been unassigned from a virtual machine.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostDiskUnassign200ResponseDisk"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnableToUnassignResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/attach": {
      "post": {
        "operationId": "post:disk_attach",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  }
                },
                "required": [
                  "disk"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Attach a disk to its virtual machine.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that will be attached to its virtual machine.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostDiskAttach200ResponseDisk"
                        }
                      ]
                    },
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "disk",
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "422": {
            "$ref": "#/components/responses/UnassignedDiskResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/detach": {
      "post": {
        "operationId": "post:disk_detach",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  }
                },
                "required": [
                  "disk"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Detach a disk from its virtual machine.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that will be detached from its virtual machine.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostDiskDetach200ResponseDisk"
                        }
                      ]
                    },
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "disk",
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "422": {
            "$ref": "#/components/responses/UnassignedDiskResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/resize": {
      "put": {
        "operationId": "put:disk_resize",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  },
                  "size_in_gb": {
                    "type": "integer"
                  },
                  "resize_method": {
                    "$ref": "#/components/schemas/ResizeMethodEnum"
                  }
                },
                "required": [
                  "disk",
                  "size_in_gb"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resize a disk.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been resized.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PutDiskResize200ResponseDisk"
                        }
                      ]
                    },
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "disk",
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/io_profile": {
      "put": {
        "operationId": "put:disk_io_profile",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  },
                  "io_profile": {
                    "$ref": "#/components/schemas/DiskIOProfileLookup"
                  }
                },
                "required": [
                  "disk",
                  "io_profile"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Change disk IO profile.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk": {
                      "description": "The disk that has been updated.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PutDiskIOProfile200ResponseDisk"
                        }
                      ]
                    },
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "disk",
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskIOProfileNotFoundDiskNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/disks": {
      "get": {
        "operationId": "get:virtual_machine_disks",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to find disks for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine[fqdn]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to find disks for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all disks for a given virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disks": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetVirtualMachineDisks200ResponseDisks"
                      },
                      "description": "The list of disks"
                    }
                  },
                  "required": [
                    "pagination",
                    "disks"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/disk_io_profiles": {
      "get": {
        "operationId": "get:organization_disk_io_profiles",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disk IO profiles for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disk IO profiles for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all disk IO profiles available to this organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_io_profiles": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DiskIOProfile"
                      },
                      "description": "The list of disk IO profiles"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk_io_profiles"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/disk_templates": {
      "get": {
        "operationId": "get:organization_disk_templates",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disk templates for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find disk templates for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "include_universal",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "Whether or not to include universal templates"
            },
            "description": "Whether or not to include universal templates"
          },
          {
            "name": "operating_system[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An operating system to use to filter disk templates. All 'operating_system[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all disk templates owned by an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_templates": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationDiskTemplates200ResponseDiskTemplates"
                      },
                      "description": "The list of disk templates"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk_templates"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OperatingSystemNotFoundOrganizationNotFound404Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_templates/:disk_template": {
      "get": {
        "operationId": "get:disk_template",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk_template[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template to return. All 'disk_template[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "disk_template[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template to return. All 'disk_template[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific disk template",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_template": {
                      "description": "The disk template details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDiskTemplate200ResponseDiskTemplate"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_template"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskTemplateNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_templates/:disk_template/versions": {
      "get": {
        "operationId": "get:disk_template_versions",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk_template[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template to return the versions for. All 'disk_template[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "disk_template[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template to return the versions for. All 'disk_template[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all disk template versions for a specific disk template",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_template": {
                      "$ref": "#/components/schemas/GetDiskTemplateVersions200ResponseDiskTemplate"
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_template_versions": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetDiskTemplateVersions200ResponseDiskTemplateVersions"
                      },
                      "description": "The disk template versions for the provided template"
                    }
                  },
                  "required": [
                    "disk_template",
                    "pagination",
                    "disk_template_versions"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskTemplateNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_template_versions/:disk_template_version": {
      "get": {
        "operationId": "get:disk_template_version",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk_template_version[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template version to return. All 'disk_template_version[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific disk template version",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_template_version": {
                      "description": "The disk template version details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDiskTemplateVersion200ResponseDiskTemplateVersion"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_template_version"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskTemplateVersionNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_template_versions/:disk_template_version/spec": {
      "get": {
        "operationId": "get:disk_template_version_spec",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk_template_version[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk template version to return. All 'disk_template_version[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details provided by this template's specification",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_template_version": {
                      "description": "The disk template version details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDiskTemplateVersionSpec200ResponseDiskTemplateVersion"
                        }
                      ]
                    },
                    "spec": {
                      "$ref": "#/components/schemas/TemplateSpec"
                    }
                  },
                  "required": [
                    "disk_template_version",
                    "spec"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskTemplateVersionNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/gpu_types": {
      "get": {
        "operationId": "get:gpu_types",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Provides a full list of all GPU types",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "gpu_types": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetGPUTypes200ResponseGPUTypes"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "gpu_types"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/gpu_types/:gpu_type": {
      "get": {
        "operationId": "get:gpu_type",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "gpu_type[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'gpu_type[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "gpu_type[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'gpu_type[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Provide details for a specific GPU type",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "gpu_type": {
                      "$ref": "#/components/schemas/GetGPUType200ResponseGPUType"
                    }
                  },
                  "required": [
                    "gpu_type"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/GPUTypeNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/data_centers/:data_center/gpu_types": {
      "get": {
        "operationId": "get:data_center_gpu_types",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "data_center[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The data center to list GPU types for. All 'data_center[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "data_center[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The data center to list GPU types for. All 'data_center[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Provides a list of all GPU types available in a given data center",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "gpu_types": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetDataCenterGPUTypes200ResponseGPUTypes"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "gpu_types"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DataCenterNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/virtual_machines": {
      "get": {
        "operationId": "get:organization_virtual_machines",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all virtual machines for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "virtual_machines": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationVirtualMachines200ResponseVirtualMachines"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "virtual_machines"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine": {
      "get": {
        "operationId": "get:virtual_machine",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine[fqdn]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return information about a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine": {
                      "$ref": "#/components/schemas/GetVirtualMachine200ResponseVirtualMachine"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "virtual_machine",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:virtual_machine",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/VirtualMachineArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "virtual_machine",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update the properties of a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine": {
                      "description": "The newly updated virtual machine",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchVirtualMachine200ResponseVirtualMachine"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "virtual_machine",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:virtual_machine",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Moves an existing virtual machine to the trash",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "trash_object": {
                      "$ref": "#/components/schemas/TrashObject"
                    },
                    "virtual_machine": {
                      "$ref": "#/components/schemas/DeleteVirtualMachine200ResponseVirtualMachine"
                    }
                  },
                  "required": [
                    "trash_object",
                    "virtual_machine"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/package": {
      "put": {
        "operationId": "put:virtual_machine_package",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  },
                  "virtual_machine_package": {
                    "$ref": "#/components/schemas/VirtualMachinePackageLookup"
                  }
                },
                "required": [
                  "virtual_machine",
                  "virtual_machine_package"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Change a package for a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundVirtualMachinePackageNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/flexible_resources": {
      "put": {
        "operationId": "put:virtual_machine_flexible_resources",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  },
                  "resources": {
                    "$ref": "#/components/schemas/VirtualMachineFlexibleResources"
                  }
                },
                "required": [
                  "virtual_machine",
                  "resources"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Change the flexible resources assigned to a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/FlexibleResourcesUnavailableToOrganizationPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/allocate_ip": {
      "post": {
        "operationId": "post:virtual_machine_allocate_ip",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  },
                  "ip_address": {
                    "$ref": "#/components/schemas/IPAddressLookup"
                  }
                },
                "required": [
                  "virtual_machine",
                  "ip_address"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Allocate an IP address to a virtual machine, automatically determining the network interface",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_address": {
                      "description": "The newly allocated IP address",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/IPAddress"
                        }
                      ]
                    }
                  },
                  "required": [
                    "ip_address"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundVirtualMachineNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/IPAlreadyAllocatedNoInterfaceAvailable422Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine/authorized_keys": {
      "get": {
        "operationId": "get:virtual_machine_authorized_keys",
        "tags": [
          "Core"
        ],
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "Return the authorized keys for the virtual machine associated with the provided API token",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/NoVirtualMachineForAPITokenResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/virtual_machines/build": {
      "post": {
        "operationId": "post:organization_virtual_machines_build",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "zone": {
                    "$ref": "#/components/schemas/ZoneLookup"
                  },
                  "data_center": {
                    "$ref": "#/components/schemas/DataCenterLookup"
                  },
                  "package": {
                    "$ref": "#/components/schemas/VirtualMachinePackageLookup"
                  },
                  "disk_template": {
                    "$ref": "#/components/schemas/DiskTemplateLookup"
                  },
                  "disk_template_options": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  },
                  "network": {
                    "$ref": "#/components/schemas/NetworkLookup"
                  },
                  "hostname": {
                    "type": "string"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "package"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Builds a new virtual machine based on the arguments provided to this endpoint. Virtual machines will be built in the background. This task will return an task object that will allow you to monitor the build process using the appropriate API action. This action only offers a small subset of the full functionality needed when provisioning virtual machines - see the `build_from_spec` action for a full advanced virtual machine creation method.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuild201ResponseTask"
                    },
                    "build": {
                      "description": "Deprecated, please use \"virtual_machine_build\" instead",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuild201ResponseBuild"
                        }
                      ]
                    },
                    "virtual_machine_build": {
                      "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuild201ResponseVirtualMachineBuild"
                    },
                    "hostname": {
                      "type": "string"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "task",
                    "build",
                    "virtual_machine_build",
                    "hostname",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
          },
          "404": {
            "$ref": "#/components/responses/DataCenterNotFoundVirtualMachinePackageNotFoundZoneNotFound404Res"
          },
          "422": {
            "$ref": "#/components/responses/LocationRequiredValidationError422Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/virtual_machines/build_from_spec": {
      "post": {
        "operationId": "post:organization_virtual_machines_build_from_spec",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "xml": {
                    "type": "string"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "xml"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Builds a new virtual machine by receiving a virtual machine spec document",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuildFromSpec201ResponseTask"
                    },
                    "build": {
                      "description": "Deprecated, please use \"virtual_machine_build\" instead",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuildFromSpec201ResponseBuild"
                        }
                      ]
                    },
                    "virtual_machine_build": {
                      "$ref": "#/components/schemas/PostOrganizationVirtualMachinesBuildFromSpec201ResponseVirtualMachineBuild"
                    },
                    "hostname": {
                      "type": "string"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "task",
                    "build",
                    "virtual_machine_build",
                    "hostname",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidSpecXML400Res"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/builds/:virtual_machine_build": {
      "get": {
        "operationId": "get:virtual_machines_builds_virtual_machine_build",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine_build[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'virtual_machine_build[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return virtual machine build information",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_build": {
                      "$ref": "#/components/schemas/GetVirtualMachinesBuildsVirtualMachineBuild200ResponseVirtualMachineBuild"
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "virtual_machine_build",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineBuildNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/start": {
      "post": {
        "operationId": "post:virtual_machine_start",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Queues a task to start a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostVirtualMachineStart200ResponseTask"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/stop": {
      "post": {
        "operationId": "post:virtual_machine_stop",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Queues a task to stop a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostVirtualMachineStop200ResponseTask"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/shutdown": {
      "post": {
        "operationId": "post:virtual_machine_shutdown",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Queues a task to shutdown a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostVirtualMachineShutdown200ResponseTask"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/reset": {
      "post": {
        "operationId": "post:virtual_machine_reset",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Queues a task to reset a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/PostVirtualMachineReset200ResponseTask"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashTaskQueueingError406Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/console_sessions": {
      "post": {
        "operationId": "post:virtual_machine_console_sessions",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  }
                },
                "required": [
                  "virtual_machine"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Creates a new console session which can be opened in a browser",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "console_session": {
                      "$ref": "#/components/schemas/PostVirtualMachineConsoleSessions201ResponseConsoleSession"
                    }
                  },
                  "required": [
                    "console_session"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashVirtualMachineMustBeStarted406Res"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_packages": {
      "get": {
        "operationId": "get:virtual_machine_packages",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Provide an organization to only show packages available to the given organization (otherwise only public packages will be displayed). All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Provide an organization to only show packages available to the given organization (otherwise only public packages will be displayed). All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of virtual machine packages",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "virtual_machine_packages": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetVirtualMachinePackages200ResponseVirtualMachinePackages"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "virtual_machine_packages"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_packages/:virtual_machine_package": {
      "get": {
        "operationId": "get:virtual_machine_package",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine_package[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'virtual_machine_package[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine_package[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'virtual_machine_package[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return information about a given virtual machine package",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_package": {
                      "$ref": "#/components/schemas/VirtualMachinePackage"
                    }
                  },
                  "required": [
                    "virtual_machine_package"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachinePackageNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/ssh_keys": {
      "get": {
        "operationId": "get:organization_ssh_keys",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list SSH keys for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list SSH keys for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all SSH keys for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "ssh_keys": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AuthSSHKey"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "ssh_keys"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_ssh_keys",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "ssh_key": {
                    "$ref": "#/components/schemas/AuthSSHKeyProperties"
                  }
                },
                "required": [
                  "organization",
                  "ssh_key"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Add an SSH key to an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ssh_key": {
                      "$ref": "#/components/schemas/AuthSSHKey"
                    }
                  },
                  "required": [
                    "ssh_key"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/ssh_keys/:ssh_key": {
      "delete": {
        "operationId": "delete:ssh_key",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ssh_key": {
                    "$ref": "#/components/schemas/AuthSSHKeyLookup"
                  }
                },
                "required": [
                  "ssh_key"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete an SSH key",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ssh_key": {
                      "$ref": "#/components/schemas/AuthSSHKey"
                    }
                  },
                  "required": [
                    "ssh_key"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SSHKeyNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/DeletionRestrictedResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/api_tokens": {
      "get": {
        "operationId": "get:organization_api_tokens",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list API tokens for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list API tokens for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all API tokens for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "api_tokens": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/APIToken"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "api_tokens"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_api_tokens",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/APITokenArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new API token for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "api_token": {
                      "description": "The API token that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/APIToken"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      },
                      "description": "Annotations for this API token"
                    }
                  },
                  "required": [
                    "api_token",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/api_tokens/:api_token": {
      "patch": {
        "operationId": "patch:api_token",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "api_token": {
                    "$ref": "#/components/schemas/APITokenLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/APITokenArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "api_token",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates an organization API token with new properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "api_token": {
                      "description": "The API token that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/APIToken"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      },
                      "description": "Annotations for this API token"
                    }
                  },
                  "required": [
                    "api_token",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/APITokenNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:api_token",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "api_token": {
                    "$ref": "#/components/schemas/APITokenLookup"
                  }
                },
                "required": [
                  "api_token"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete an organization API token",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "api_token": {
                      "description": "The API token that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteAPIToken200ResponseAPIToken"
                        }
                      ]
                    }
                  },
                  "required": [
                    "api_token"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/APITokenNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/api_tokens/:api_token/regenerate_secret": {
      "post": {
        "operationId": "post:api_token_regenerate_secret",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "api_token": {
                    "$ref": "#/components/schemas/APITokenLookup"
                  }
                },
                "required": [
                  "api_token"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Regenerates the secret for an organization API token",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "api_token": {
                      "description": "The API token that has had its secret regenerated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/APIToken"
                        }
                      ]
                    }
                  },
                  "required": [
                    "api_token"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/APITokenNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/disk_backup_policies": {
      "get": {
        "operationId": "get:organization_disk_backup_policies",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return disk backup policies for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return disk backup policies for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all disk backup policies for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_backup_policies": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationDiskBackupPolicies200ResponseDiskBackupPolicies"
                      },
                      "description": "The disk backup policies for the provided organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk_backup_policies"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/disk_backup_policies": {
      "get": {
        "operationId": "get:virtual_machine_disk_backup_policies",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to return disk backup policies for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine[fqdn]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to return disk backup policies for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "include_disks",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "If true, the returned list will include backup policies owned by disks assigned to this virtual machine in addition to those that belong to the whole virtual machine"
            },
            "description": "If true, the returned list will include backup policies owned by disks assigned to this virtual machine in addition to those that belong to the whole virtual machine"
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all disk backup policies for a given virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_backup_policies": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetVirtualMachineDiskBackupPolicies200ResponseDiskBackupPolicies"
                      },
                      "description": "The disk backup policies for the provided virtual machine"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk_backup_policies"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:virtual_machine_disk_backup_policies",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine": {
                    "$ref": "#/components/schemas/VirtualMachineLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DiskBackupPolicyArguments"
                  }
                },
                "required": [
                  "virtual_machine",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Creates a new disk backup policy for a virtual machine",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The new disk backup policy that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostVirtualMachineDiskBackupPolicies200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disks/:disk/disk_backup_policies": {
      "get": {
        "operationId": "get:disk_disk_backup_policies",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk to return disk backup policies for. All 'disk[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all disk backup policies for a given disk",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "disk_backup_policies": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetDiskDiskBackupPolicies200ResponseDiskBackupPolicies"
                      },
                      "description": "The disk backup policies for the provided disk"
                    }
                  },
                  "required": [
                    "pagination",
                    "disk_backup_policies"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:disk_disk_backup_policies",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk": {
                    "$ref": "#/components/schemas/DiskLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DiskBackupPolicyArguments"
                  }
                },
                "required": [
                  "disk",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Creates a new disk backup policy for a disk",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The new disk backup policy that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostDiskDiskBackupPolicies200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_backup_policies/:disk_backup_policy": {
      "get": {
        "operationId": "get:disk_backup_policy",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "disk_backup_policy[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The disk backup policy to get information for. All 'disk_backup_policy[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns information about a specific disk backup policy",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The located disk backup policy",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetDiskBackupPolicy200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DiskBackupPolicyNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:disk_backup_policy",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk_backup_policy": {
                    "$ref": "#/components/schemas/DiskBackupPolicyLookup"
                  }
                },
                "required": [
                  "disk_backup_policy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Deletes a disk backup policy and moves it to the trash",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The disk backup policy that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteDiskBackupPolicy200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskBackupPolicyNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:disk_backup_policy",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk_backup_policy": {
                    "$ref": "#/components/schemas/DiskBackupPolicyLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DiskBackupPolicyArguments"
                  }
                },
                "required": [
                  "disk_backup_policy",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates the disk backup policy with the provided details",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The disk backup policy that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchDiskBackupPolicy200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskBackupPolicyNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/disk_backup_policies/:disk_backup_policy/schedule": {
      "delete": {
        "operationId": "delete:disk_backup_policy_schedule",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "disk_backup_policy": {
                    "$ref": "#/components/schemas/DiskBackupPolicyLookup"
                  },
                  "timestamp": {
                    "type": "integer",
                    "description": "The time the disk backup policy will be moved to the trash automatically."
                  }
                },
                "required": [
                  "disk_backup_policy",
                  "timestamp"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Schedules a disk backup policy to be moved to the trash at a specific time. The backup policy will continue to function as normal until this time is reached.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "disk_backup_policy": {
                      "description": "The disk backup policy that has been scheduled for deletion",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteDiskBackupPolicySchedule200ResponseDiskBackupPolicy"
                        }
                      ]
                    }
                  },
                  "required": [
                    "disk_backup_policy"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidTimestamp400Res"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DiskBackupPolicyNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/dns_zones": {
      "get": {
        "operationId": "get:organization_dns_zones",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all DNS zones",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "dns_zones": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DNSZone"
                      },
                      "description": "The DNS zones for the provided organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "dns_zones"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_dns_zones",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DNSZoneArguments"
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new DNS zone within an existing organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_zone": {
                      "description": "The new DNS zone that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSZone"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_zone"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/dns_zones/nameservers": {
      "get": {
        "operationId": "get:organization_dns_zones_nameservers",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of nameservers that should be used for DNS zones within a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "nameservers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "nameservers"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/dns_zones/:dns_zone": {
      "get": {
        "operationId": "get:dns_zone",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "dns_zone[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'dns_zone[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "dns_zone[name]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'dns_zone[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific DNS zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_zone": {
                      "description": "The DNS zones for the provided organization",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSZone"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_zone"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:dns_zone",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_zone": {
                    "$ref": "#/components/schemas/DNSZoneLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DNSZoneArguments"
                  }
                },
                "required": [
                  "dns_zone",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update properties for a DNS zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_zone": {
                      "description": "The DNS zones for the provided organization",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSZone"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_zone"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:dns_zone",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_zone": {
                    "$ref": "#/components/schemas/DNSZoneLookup"
                  }
                },
                "required": [
                  "dns_zone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a DNS zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/dns_zones/:dns_zone/verify": {
      "post": {
        "operationId": "post:dns_zone_verify",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_zone": {
                    "$ref": "#/components/schemas/DNSZoneLookup"
                  }
                },
                "required": [
                  "dns_zone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Attempt to verify the nameservers for a given DNS zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_zone": {
                      "description": "The DNS zones for the provided organization",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSZone"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_zone"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/DNSZoneNotVerifiedResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/dns_zones/:dns_zone/records": {
      "get": {
        "operationId": "get:dns_zone_records",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "dns_zone[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'dns_zone[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "dns_zone[name]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'dns_zone[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all DNS records in a zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_records": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DNSRecord"
                      },
                      "description": "The DNS record for the provided zone"
                    }
                  },
                  "required": [
                    "dns_records"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:dns_zone_records",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_zone": {
                    "$ref": "#/components/schemas/DNSZoneLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DNSRecordArguments"
                  }
                },
                "required": [
                  "dns_zone",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new DNS record",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_record": {
                      "$ref": "#/components/schemas/DNSRecord"
                    }
                  },
                  "required": [
                    "dns_record"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/DNSZoneNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/dns_records/:dns_record": {
      "get": {
        "operationId": "get:dns_record",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "dns_record[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'dns_record[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific DNS record",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_record": {
                      "description": "The DNS record for the provided organization",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSRecord"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_record"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSRecordNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:dns_record",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_record": {
                    "$ref": "#/components/schemas/DNSRecordLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/DNSRecordArguments"
                  }
                },
                "required": [
                  "dns_record",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update a DNS record properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "dns_record": {
                      "description": "The DNS record that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DNSRecord"
                        }
                      ]
                    }
                  },
                  "required": [
                    "dns_record"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSRecordNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:dns_record",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "dns_record": {
                    "$ref": "#/components/schemas/DNSRecordLookup"
                  }
                },
                "required": [
                  "dns_record"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a DNS record",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "deleted": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "deleted"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/DNSRecordNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/security_groups": {
      "get": {
        "operationId": "get:organization_security_groups",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all security groups for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all security groups for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all security groups for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "security_groups": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/SecurityGroup"
                      },
                      "description": "The security groups owned by this organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "security_groups"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_security_groups",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/SecurityGroupArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new security group for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group": {
                      "description": "The security group that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecurityGroup"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "security_group",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/security_groups/:security_group": {
      "get": {
        "operationId": "get:security_group",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "security_group[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The security group to return the details for. All 'security_group[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a security group",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group": {
                      "description": "The security group",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecurityGroup"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "security_group",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:security_group",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "security_group": {
                    "$ref": "#/components/schemas/SecurityGroupLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/SecurityGroupArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "security_group",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates a security group with new properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group": {
                      "description": "The security group that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecurityGroup"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "security_group",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:security_group",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "security_group": {
                    "$ref": "#/components/schemas/SecurityGroupLookup"
                  }
                },
                "required": [
                  "security_group"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a security group",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group": {
                      "description": "The security group that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteSecurityGroup200ResponseSecurityGroup"
                        }
                      ]
                    }
                  },
                  "required": [
                    "security_group"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/DeletionRestrictedResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/security_groups/:security_group/rules": {
      "get": {
        "operationId": "get:security_group_rules",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "security_group[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The security group to return all load rules for. All 'security_group[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all rules for a given security group",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "security_group_rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetSecurityGroupRules200ResponseSecurityGroupRules"
                      },
                      "description": "The security group rules for this security group"
                    }
                  },
                  "required": [
                    "pagination",
                    "security_group_rules"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:security_group_rules",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "security_group": {
                    "$ref": "#/components/schemas/SecurityGroupLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/SecurityGroupRuleArguments"
                  }
                },
                "required": [
                  "security_group",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new security group rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group_rule": {
                      "description": "The security group rule that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostSecurityGroupRules200ResponseSecurityGroupRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "security_group_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/security_groups/rules/:security_group_rule": {
      "get": {
        "operationId": "get:security_groups_rules_security_group_rule",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "security_group_rule[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The security group rule to return the details for. All 'security_group_rule[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a security group rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group_rule": {
                      "description": "The resolved security group rule",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "security_group_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupRuleNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:security_groups_rules_security_group_rule",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "security_group_rule": {
                    "$ref": "#/components/schemas/SecurityGroupRuleLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/SecurityGroupRuleArguments"
                  }
                },
                "required": [
                  "security_group_rule",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates a security group rule with new properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group_rule": {
                      "description": "The security group that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "security_group_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupRuleNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:security_groups_rules_security_group_rule",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "security_group_rule": {
                    "$ref": "#/components/schemas/SecurityGroupRuleLookup"
                  }
                },
                "required": [
                  "security_group_rule"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a security group rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "security_group_rule": {
                      "description": "The security group rule that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "security_group_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/SecurityGroupRuleNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/file_storage_volumes": {
      "get": {
        "operationId": "get:organization_file_storage_volumes",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all file storage volumes for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all file storage volumes for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all file storage volumes for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "file_storage_volumes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationFileStorageVolumes200ResponseFileStorageVolumes"
                      },
                      "description": "A list of all file storage volumes for the given organization."
                    }
                  },
                  "required": [
                    "pagination",
                    "file_storage_volumes"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_file_storage_volumes",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/FileStorageVolumeArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new file storage volume for a given organization.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "file_storage_volume": {
                      "description": "The file storage volume.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostOrganizationFileStorageVolumes201ResponseFileStorageVolume"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "file_storage_volume",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/file_storage_volumes/:file_storage_volume": {
      "get": {
        "operationId": "get:file_storage_volume",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "file_storage_volume[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The file storage volume to return. All 'file_storage_volume[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details for a file storage volume.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "file_storage_volume": {
                      "description": "The file storage volume.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetFileStorageVolume200ResponseFileStorageVolume"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "file_storage_volume",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/FileStorageVolumeNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:file_storage_volume",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "file_storage_volume": {
                    "$ref": "#/components/schemas/FileStorageVolumeLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/FileStorageVolumeArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "file_storage_volume",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update a file storage volume with new properties.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "file_storage_volume": {
                      "description": "The file storage volume.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchFileStorageVolume200ResponseFileStorageVolume"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "file_storage_volume",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/FileStorageVolumeNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:file_storage_volume",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "file_storage_volume": {
                    "$ref": "#/components/schemas/FileStorageVolumeLookup"
                  }
                },
                "required": [
                  "file_storage_volume"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a file storage volume.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "trash_object": {
                      "$ref": "#/components/schemas/TrashObject"
                    },
                    "file_storage_volume": {
                      "description": "The file storage volume that has been destroyed.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteFileStorageVolume200ResponseFileStorageVolume"
                        }
                      ]
                    }
                  },
                  "required": [
                    "trash_object",
                    "file_storage_volume"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/FileStorageVolumeNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/available_networks": {
      "get": {
        "operationId": "get:organization_available_networks",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all networks available for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "networks": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationAvailableNetworks200ResponseNetworks"
                      }
                    },
                    "virtual_networks": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationAvailableNetworks200ResponseVirtualNetworks"
                      }
                    }
                  },
                  "required": [
                    "networks",
                    "virtual_networks"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/networks/:network": {
      "get": {
        "operationId": "get:network",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "network[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network to return. All 'network[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "network[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network to return. All 'network[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details for a specific network",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "network": {
                      "description": "The details for the requested network",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Network"
                        }
                      ]
                    }
                  },
                  "required": [
                    "network"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/NetworkNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/network_speed_profiles": {
      "get": {
        "operationId": "get:organization_network_speed_profiles",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to use when looking up network speed profiles. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to use when looking up network speed profiles. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all network speed profiles available to an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "network_speed_profiles": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/NetworkSpeedProfile"
                      },
                      "description": "The network speed profiles available to this organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "network_speed_profiles"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/address_lists": {
      "get": {
        "operationId": "get:address_lists",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all global address lists.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "address_lists": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetAddressLists200ResponseAddressLists"
                      },
                      "description": "A list of all global address lists."
                    }
                  },
                  "required": [
                    "pagination",
                    "address_lists"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/address_lists": {
      "get": {
        "operationId": "get:organization_address_lists",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization for which the address lists should be returned. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization for which the address lists should be returned. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all address lists for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "address_lists": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationAddressLists200ResponseAddressLists"
                      },
                      "description": "A list of all address lists for the given organization."
                    }
                  },
                  "required": [
                    "pagination",
                    "address_lists"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_address_lists",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/AddressListArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new address list for a given organization.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list": {
                      "description": "The address list.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressList"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "address_list",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/address_lists/:address_list": {
      "get": {
        "operationId": "get:address_list",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "address_list[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The address list to return. All 'address_list[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details for a address list.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list": {
                      "description": "The address list.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressList"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "address_list",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/AddressListNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:address_list",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "address_list": {
                    "$ref": "#/components/schemas/AddressListLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/AddressListArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "address_list",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update a address list with new properties.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list": {
                      "description": "The address list.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressList"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "address_list",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:address_list",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "address_list": {
                    "$ref": "#/components/schemas/AddressListLookup"
                  }
                },
                "required": [
                  "address_list"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a address list.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list": {
                      "description": "The address list that has been destroyed.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressList"
                        }
                      ]
                    }
                  },
                  "required": [
                    "address_list"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/address_lists/:address_list/entries": {
      "get": {
        "operationId": "get:address_list_entries",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "address_list[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The address list for which the entries should be returned. All 'address_list[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all address list entries for a given address list",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "address_list_entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AddressListEntry"
                      },
                      "description": "A list of all address list entries for the given address list."
                    }
                  },
                  "required": [
                    "pagination",
                    "address_list_entries"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:address_list_entries",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "address_list": {
                    "$ref": "#/components/schemas/AddressListLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/AddressListEntryArguments"
                  }
                },
                "required": [
                  "address_list",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new address list entry for a given address list.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list_entry": {
                      "description": "The address list entry.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressListEntry"
                        }
                      ]
                    }
                  },
                  "required": [
                    "address_list_entry"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/address_list_entries/:address_list_entry": {
      "get": {
        "operationId": "get:address_list_entry",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "address_list_entry[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The address list entry to return. All 'address_list_entry[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details for an address list entry.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list_entry": {
                      "description": "The address list entry.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressListEntry"
                        }
                      ]
                    }
                  },
                  "required": [
                    "address_list_entry"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/AddressListEntryNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:address_list_entry",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "address_list_entry": {
                    "$ref": "#/components/schemas/AddressListEntryLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/AddressListEntryArguments"
                  }
                },
                "required": [
                  "address_list_entry",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update an address list entry with new properties.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list_entry": {
                      "description": "The address list entry.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressListEntry"
                        }
                      ]
                    }
                  },
                  "required": [
                    "address_list_entry"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListEntryNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:address_list_entry",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "address_list_entry": {
                    "$ref": "#/components/schemas/AddressListEntryLookup"
                  }
                },
                "required": [
                  "address_list_entry"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete an address list entry.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "address_list_entry": {
                      "description": "The address list entry that has been destroyed.",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/AddressListEntry"
                        }
                      ]
                    }
                  },
                  "required": [
                    "address_list_entry"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/AddressListEntryNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/certificates": {
      "get": {
        "operationId": "get:organization_certificates",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Provides a full list of certificates",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "certificates": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationCertificates200ResponseCertificates"
                      }
                    }
                  },
                  "required": [
                    "pagination",
                    "certificates"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/certificates/:certificate": {
      "get": {
        "operationId": "get:certificate",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "certificate[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'certificate[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific certificate",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "certificate": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Certificate"
                      }
                    }
                  },
                  "required": [
                    "certificate"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/CertificateNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/load_balancers": {
      "get": {
        "operationId": "get:organization_load_balancers",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all load balancers for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return all load balancers for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[key]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "annotations[value]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "An array of annotations to filter by. All 'annotations[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all load balancers for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "load_balancers": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationLoadBalancers200ResponseLoadBalancers"
                      },
                      "description": "The load balancers owned by this organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "load_balancers"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_load_balancers",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/LoadBalancerArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new load balancer for a given organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer": {
                      "description": "The load balancer that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostOrganizationLoadBalancers201ResponseLoadBalancer"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "load_balancer",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/load_balancers/:load_balancer": {
      "get": {
        "operationId": "get:load_balancer",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "load_balancer[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The load balancer to return the details for. All 'load_balancer[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "load_balancer[api_reference]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The load balancer to return the details for. All 'load_balancer[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a load balancer",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer": {
                      "description": "The load balancer",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetLoadBalancer200ResponseLoadBalancer"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "load_balancer",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:load_balancer",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "load_balancer": {
                    "$ref": "#/components/schemas/LoadBalancerLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/LoadBalancerArguments"
                  },
                  "annotations": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/KeyValue"
                    }
                  }
                },
                "required": [
                  "load_balancer",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates a load balancer with new properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer": {
                      "description": "The load balancer that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchLoadBalancer200ResponseLoadBalancer"
                        }
                      ]
                    },
                    "annotations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/KeyValue"
                      }
                    }
                  },
                  "required": [
                    "load_balancer",
                    "annotations"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:load_balancer",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "load_balancer": {
                    "$ref": "#/components/schemas/LoadBalancerLookup"
                  }
                },
                "required": [
                  "load_balancer"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a load balancer",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer": {
                      "description": "The load balancer that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteLoadBalancer200ResponseLoadBalancer"
                        }
                      ]
                    }
                  },
                  "required": [
                    "load_balancer"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/load_balancers/:load_balancer/rules": {
      "get": {
        "operationId": "get:load_balancer_rules",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "load_balancer[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The load balancer to return all load rules for. All 'load_balancer[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "load_balancer[api_reference]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The load balancer to return all load rules for. All 'load_balancer[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all rules for a given load balancer",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "load_balancer_rules": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetLoadBalancerRules200ResponseLoadBalancerRules"
                      },
                      "description": "The load balancer rules for this load balancer"
                    }
                  },
                  "required": [
                    "pagination",
                    "load_balancer_rules"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:load_balancer_rules",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "load_balancer": {
                    "$ref": "#/components/schemas/LoadBalancerLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/LoadBalancerRuleArguments"
                  }
                },
                "required": [
                  "load_balancer",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new load balancer rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer_rule": {
                      "description": "The load balancer rule that has been created",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostLoadBalancerRules200ResponseLoadBalancerRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "load_balancer_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/load_balancers/rules/:load_balancer_rule": {
      "get": {
        "operationId": "get:load_balancers_rules_load_balancer_rule",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "load_balancer_rule[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The load balancer rule to return the details for. All 'load_balancer_rule[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a load balancer rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer_rule": {
                      "description": "The resolved load balancer rule",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "load_balancer_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerRuleNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:load_balancers_rules_load_balancer_rule",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "load_balancer_rule": {
                    "$ref": "#/components/schemas/LoadBalancerRuleLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/LoadBalancerRuleArguments"
                  }
                },
                "required": [
                  "load_balancer_rule",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates a load balancer rule with new properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer_rule": {
                      "description": "The load balancer that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PatchLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "load_balancer_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerRuleNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:load_balancers_rules_load_balancer_rule",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "load_balancer_rule": {
                    "$ref": "#/components/schemas/LoadBalancerRuleLookup"
                  }
                },
                "required": [
                  "load_balancer_rule"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Delete a load balancer rule",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "load_balancer_rule": {
                      "description": "The load balancer rule that has been destroyed",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/DeleteLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule"
                        }
                      ]
                    }
                  },
                  "required": [
                    "load_balancer_rule"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/LoadBalancerRuleNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/ip_addresses": {
      "get": {
        "operationId": "get:organization_ip_addresses",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to use when looking up IP addresses. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to use when looking up IP addresses. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "allocated",
            "in": "query",
            "schema": {
              "type": "boolean",
              "description": "If true, only return allocated IP addresss. If false, only return unallocated IP addresses."
            },
            "description": "If true, only return allocated IP addresss. If false, only return unallocated IP addresses."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all IP addresses belonging to an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "ip_addresses": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationIPAddresses200ResponseIPAddresses"
                      },
                      "description": "The IP addresses belonging to this organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "ip_addresses"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_ip_addresses",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "network": {
                    "$ref": "#/components/schemas/NetworkLookup"
                  },
                  "version": {
                    "$ref": "#/components/schemas/IPAddressVersionEnum"
                  },
                  "vip": {
                    "type": "boolean",
                    "description": "Whether or not to set this address as a VIP"
                  },
                  "label": {
                    "type": "string",
                    "description": "The label to give this address if setting it as a VIP"
                  }
                },
                "required": [
                  "organization",
                  "network",
                  "version"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Creates a new IP address on this organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_address": {
                      "description": "The newly allocated IP address",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/IPAddress"
                        }
                      ]
                    }
                  },
                  "required": [
                    "ip_address"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/NetworkNotFoundOrganizationNotFound404Res"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/NoAvailableAddresses503Res"
          }
        }
      }
    },
    "/ip_addresses/:ip_address": {
      "get": {
        "operationId": "get:ip_address",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "ip_address[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The IP address to find. All 'ip_address[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "ip_address[address]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The IP address to find. All 'ip_address[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns information about a specific IP address",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_address": {
                      "description": "The IP address that has been located",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/IPAddress"
                        }
                      ]
                    },
                    "allocation": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetIPAddress200ResponseAllocation"
                        }
                      ],
                      "description": "The resource this address is allocated to",
                      "nullable": true
                    }
                  },
                  "required": [
                    "ip_address",
                    "allocation"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:ip_address",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ip_address": {
                    "$ref": "#/components/schemas/IPAddressLookup"
                  },
                  "vip": {
                    "type": "boolean",
                    "description": "Whether or not to set this address as a VIP"
                  },
                  "label": {
                    "type": "string",
                    "description": "The label to give this address if setting it as a VIP"
                  },
                  "reverse_dns": {
                    "type": "string",
                    "description": "The reverse DNS to set for this IP address"
                  }
                },
                "required": [
                  "ip_address"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates the details on an IP address",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_address": {
                      "description": "The IP address that has been updated",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/IPAddress"
                        }
                      ]
                    }
                  },
                  "required": [
                    "ip_address"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:ip_address",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ip_address": {
                    "$ref": "#/components/schemas/IPAddressLookup"
                  }
                },
                "required": [
                  "ip_address"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Release an IP address from its organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {

                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/ResourceDoesNotSupportUnallocationResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/ip_addresses/:ip_address/unallocate": {
      "post": {
        "operationId": "post:ip_address_unallocate",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "ip_address": {
                    "$ref": "#/components/schemas/IPAddressLookup"
                  }
                },
                "required": [
                  "ip_address"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Unallocate an IP address from its resource",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {

                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/ResourceDoesNotSupportUnallocationResponse"
          },
          "422": {
            "$ref": "#/components/responses/NoAllocationResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/network_interfaces": {
      "get": {
        "operationId": "get:virtual_machine_network_interfaces",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to show network interfaces for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine[fqdn]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to show network interfaces for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of virtual machine network interfaces",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "virtual_machine_network_interfaces": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfaces200ResponseVirtualMachineNetworkInterfaces"
                      },
                      "description": "The network interfaces for this virtual machine"
                    }
                  },
                  "required": [
                    "pagination",
                    "virtual_machine_network_interfaces"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machines/:virtual_machine/networks/:network/interface": {
      "get": {
        "operationId": "get:virtual_machine_network_interface",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to find the network interface for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "virtual_machine[fqdn]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine to find the network interface for. All 'virtual_machine[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "network[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network to find the network interface for. All 'network[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "network[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network to find the network interface for. All 'network[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return information about a virtual machine network interface for a specific network",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_network_interface": {
                      "description": "The network interface details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetVirtualMachineNetworkInterface200ResponseVirtualMachineNetworkInterface"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_network_interface"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/InterfaceNotFoundNetworkNotFoundVirtualMachineNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/ObjectInTrashResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_network_interfaces/:virtual_machine_network_interface": {
      "get": {
        "operationId": "get:v_m_n_i__v_m_n_i",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine_network_interface[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network interface to show the information for. All 'virtual_machine_network_interface[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return information about a given virtual machine network interface",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_network_interface": {
                      "description": "The network interface details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/GetVMNIVMNI200ResponseVirtualMachineNetworkInterface"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_network_interface"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNetworkInterfaceNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_network_interfaces/:virtual_machine_network_interface/available_ips/:address_version": {
      "get": {
        "operationId": "get:virtual_machine_network_interface_available_ips_address_version",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine_network_interface[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The network interface to get IP addresses for. All 'virtual_machine_network_interface[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "address_version",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/IPAddressVersionEnum"
            },
            "description": "The IP address version to return results for",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of IP addresses that can be allocated to a specific network interface",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_addresses": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/IPAddress"
                      },
                      "description": "The IP addresses available for this network interface"
                    }
                  },
                  "required": [
                    "ip_addresses"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNetworkInterfaceNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_network_interfaces/:virtual_machine_network_interface/allocate_ip": {
      "post": {
        "operationId": "post:virtual_machine_network_interface_allocate_ip",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine_network_interface": {
                    "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceLookup"
                  },
                  "ip_address": {
                    "$ref": "#/components/schemas/IPAddressLookup"
                  }
                },
                "required": [
                  "virtual_machine_network_interface",
                  "ip_address"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Allocate a specific IP address to a given network interface",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_network_interface": {
                      "description": "The network interface details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/PostVirtualMachineNetworkInterfaceAllocateIP200ResponseVirtualMachineNetworkInterface"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_network_interface"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/IPAddressNotFoundVirtualMachineNetworkInterfaceNotFound404Res"
          },
          "422": {
            "$ref": "#/components/responses/IPAlreadyAllocatedInvalidIP422Res"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_network_interfaces/:virtual_machine_network_interface/allocate_new_ip": {
      "post": {
        "operationId": "post:virtual_machine_network_interface_allocate_new_ip",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine_network_interface": {
                    "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceLookup"
                  },
                  "address_version": {
                    "$ref": "#/components/schemas/IPAddressVersionEnum"
                  }
                },
                "required": [
                  "virtual_machine_network_interface",
                  "address_version"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Add a new IP address to this organization and allocate it to a virtual machine network interface",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "ip_address": {
                      "description": "The newly allocated IP address",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/IPAddress"
                        }
                      ]
                    }
                  },
                  "required": [
                    "ip_address"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineNetworkInterfaceNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/NoAvailableAddresses503Res"
          }
        }
      }
    },
    "/virtual_machine_network_interfaces/:virtual_machine_network_interface/update_speed_profile": {
      "patch": {
        "operationId": "patch:virtual_machine_network_interface_update_speed_profile",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine_network_interface": {
                    "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceLookup"
                  },
                  "speed_profile": {
                    "$ref": "#/components/schemas/NetworkSpeedProfileLookup"
                  }
                },
                "required": [
                  "virtual_machine_network_interface",
                  "speed_profile"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "description": "The task responsible for updating the virtual machine network interface speed profile",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Task"
                        }
                      ]
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/NetworkSpeedProfileNotFoundVirtualMachineNetworkInterfaceNotFound404Res"
          },
          "406": {
            "$ref": "#/components/responses/TaskQueueingErrorResponse"
          },
          "422": {
            "$ref": "#/components/responses/SpeedProfileAlreadyAssignedResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/tags": {
      "get": {
        "operationId": "get:organization_tags",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list the tags for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to list the tags for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of all tags for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOrganizationTags200ResponseTags"
                      },
                      "description": "The details for the tags on the organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "tags"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_tags",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/TagArguments"
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Creates a new tag with the provided properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "tag": {
                      "description": "The newly created tag",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tag"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tag"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/tags/:tag": {
      "get": {
        "operationId": "get:tag",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "tag[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The tag to load the details for. All 'tag[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a specific tag",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "tag": {
                      "description": "The details for the requested tag",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tag"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tag"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/TagNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:tag",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "tag": {
                    "$ref": "#/components/schemas/TagLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/TagArguments"
                  }
                },
                "required": [
                  "tag",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updates a tag with the provided properties",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "tag": {
                      "description": "The newly updated tag",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tag"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tag"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/TagNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:tag",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "tag": {
                    "$ref": "#/components/schemas/TagLookup"
                  }
                },
                "required": [
                  "tag"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Deletes a tag",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "tag": {
                      "description": "The newly deleted tag",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tag"
                        }
                      ]
                    }
                  },
                  "required": [
                    "tag"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/TagNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/virtual_machine_groups": {
      "get": {
        "operationId": "get:organization_virtual_machine_groups",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return groups for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to return groups for. All 'organization[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all virtual machine groups for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_groups": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VirtualMachineGroup"
                      },
                      "description": "The virtual machine groups for the provided organization"
                    }
                  },
                  "required": [
                    "virtual_machine_groups"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "post": {
        "operationId": "post:organization_virtual_machine_groups",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/VirtualMachineGroupArguments"
                  }
                },
                "required": [
                  "organization",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Create a new virtual machine group with the provided details",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_group": {
                      "description": "The new virtual machine group details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/VirtualMachineGroup"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_group"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/virtual_machine_groups/:virtual_machine_group": {
      "get": {
        "operationId": "get:virtual_machine_group",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "virtual_machine_group[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The virtual machine group to retrieve. All 'virtual_machine_group[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return detailed information about a virtual machine group",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_group": {
                      "description": "The virtual machine group details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/VirtualMachineGroup"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_group"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineGroupNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "patch": {
        "operationId": "patch:virtual_machine_group",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine_group": {
                    "$ref": "#/components/schemas/VirtualMachineGroupLookup"
                  },
                  "properties": {
                    "$ref": "#/components/schemas/VirtualMachineGroupArguments"
                  }
                },
                "required": [
                  "virtual_machine_group",
                  "properties"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Update a virtual machine group with the provided details",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_group": {
                      "description": "The updated virtual machine group details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/VirtualMachineGroup"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_group"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineGroupNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/ValidationErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:virtual_machine_group",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "virtual_machine_group": {
                    "$ref": "#/components/schemas/VirtualMachineGroupLookup"
                  }
                },
                "required": [
                  "virtual_machine_group"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "virtual_machine_group": {
                      "description": "The details for the deleted virtual machine group",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/VirtualMachineGroup"
                        }
                      ]
                    }
                  },
                  "required": [
                    "virtual_machine_group"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/VirtualMachineGroupNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/DeletionRestrictedResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/operating_systems": {
      "get": {
        "operationId": "get:operating_systems",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all operating systems",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "operating_systems": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetOperatingSystems200ResponseOperatingSystems"
                      },
                      "description": "The list of available operating systems"
                    }
                  },
                  "required": [
                    "pagination",
                    "operating_systems"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/operating_systems/:operating_system": {
      "get": {
        "operationId": "get:operating_system",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "operating_system[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The operating system to return. All 'operating_system[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific operating system",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "operating_system": {
                      "description": "The operating system details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/OperatingSystem"
                        }
                      ]
                    }
                  },
                  "required": [
                    "operating_system"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/OperatingSystemNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/trash_objects": {
      "get": {
        "operationId": "get:organization_trash_objects",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "organization[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find all trash objects for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "organization[sub_domain]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The organization to find all trash objects for. All 'organization[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Provides a full list of all trash objects for a specific organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "trash_objects": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TrashObject"
                      },
                      "description": "The trash objects that belong to this organization"
                    }
                  },
                  "required": [
                    "pagination",
                    "trash_objects"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspended403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/organizations/:organization/trash_objects/purge_all": {
      "post": {
        "operationId": "post:organization_trash_objects_purge_all",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "organization": {
                    "$ref": "#/components/schemas/OrganizationLookup"
                  }
                },
                "required": [
                  "organization"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Purge all trash objects for an organization",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/OrganizationNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/TaskQueueingErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/trash_objects/:trash_object": {
      "get": {
        "operationId": "get:trash_object",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "trash_object[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The trash object to find. All 'trash_object[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "trash_object[object_id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The trash object to find. All 'trash_object[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Provides information on a specific trash object",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "trash_object": {
                      "description": "The requested trash object",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/TrashObject"
                        }
                      ]
                    }
                  },
                  "required": [
                    "trash_object"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/TrashObjectNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      },
      "delete": {
        "operationId": "delete:trash_object",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "trash_object": {
                    "$ref": "#/components/schemas/TrashObjectLookup"
                  }
                },
                "required": [
                  "trash_object"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Purge a specific trash object",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/TrashObjectNotFoundResponse"
          },
          "406": {
            "$ref": "#/components/responses/TaskQueueingErrorResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/trash_objects/:trash_object/restore": {
      "post": {
        "operationId": "post:trash_object_restore",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "trash_object": {
                    "$ref": "#/components/schemas/TrashObjectLookup"
                  }
                },
                "required": [
                  "trash_object"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Restore a trashed object to its original location",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "trash_object": {
                      "description": "The requested trash object",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/TrashObject"
                        }
                      ]
                    }
                  },
                  "required": [
                    "trash_object"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/PermissionDenied403Res"
          },
          "404": {
            "$ref": "#/components/responses/TrashObjectNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/zones": {
      "get": {
        "operationId": "get:zones",
        "tags": [
          "Core"
        ],
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "Returns a list of all zones on the system for the current identity",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "zones": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetZones200ResponseZones"
                      },
                      "description": "The zones available to the current identity"
                    }
                  },
                  "required": [
                    "zones"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/zones/:zone": {
      "get": {
        "operationId": "get:zone",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "zone[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The zone to find. All 'zone[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "zone[permalink]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The zone to find. All 'zone[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the details for a specific zone",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "zone": {
                      "description": "The zone details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Zone"
                        }
                      ]
                    }
                  },
                  "required": [
                    "zone"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/ZoneNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/countries": {
      "get": {
        "operationId": "get:countries",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all countries available in Katapult",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "countries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetCountries200ResponseCountries"
                      },
                      "description": "The list of countries"
                    }
                  },
                  "required": [
                    "pagination",
                    "countries"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/countries/:country": {
      "get": {
        "operationId": "get:country",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "country[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return. All 'country[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "country[iso_code2]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return. All 'country[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "country[iso_code3]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return. All 'country[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific country",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "country": {
                      "description": "The country details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Country"
                        }
                      ]
                    }
                  },
                  "required": [
                    "country"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/CountryNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/countries/:country/country_states": {
      "get": {
        "operationId": "get:country_country_states",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "country[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return states for. All 'country[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "country[iso_code2]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return states for. All 'country[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "country[iso_code3]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country to return states for. All 'country[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all country states for a specific country",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "country_states": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetCountryCountryStates200ResponseCountryStates"
                      },
                      "description": "The list of country states for the given country"
                    }
                  },
                  "required": [
                    "pagination",
                    "country_states"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/CountryNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/country_states/:country_state": {
      "get": {
        "operationId": "get:country_state",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "country_state[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The country state to return. All 'country_state[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific country state",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "country_state": {
                      "description": "The country state details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CountryState"
                        }
                      ]
                    }
                  },
                  "required": [
                    "country_state"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/CountryStateNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/currencies": {
      "get": {
        "operationId": "get:currencies",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Return a list of all currencies available in Katapult",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "pagination": {
                      "$ref": "#/components/schemas/PaginationObject"
                    },
                    "currencies": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetCurrencies200ResponseCurrencies"
                      },
                      "description": "The list of currencies"
                    }
                  },
                  "required": [
                    "pagination",
                    "currencies"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/currencies/:currency": {
      "get": {
        "operationId": "get:currency",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "currency[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The currency to return. All 'currency[]' params are mutually exclusive, only one can be provided."
          },
          {
            "name": "currency[iso_code]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "The currency to return. All 'currency[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Return details for a specific currency",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "currency": {
                      "description": "The currency details",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Currency"
                        }
                      ]
                    }
                  },
                  "required": [
                    "currency"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/CurrencyNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/tasks/:task": {
      "get": {
        "operationId": "get:task",
        "tags": [
          "Core"
        ],
        "parameters": [
          {
            "name": "task[id]",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "All 'task[]' params are mutually exclusive, only one can be provided."
          }
        ],
        "responses": {
          "200": {
            "description": "Returns details about a specific task",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "task": {
                      "$ref": "#/components/schemas/Task"
                    }
                  },
                  "required": [
                    "task"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/TaskNotFoundResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/users/current": {
      "get": {
        "operationId": "get:users_current",
        "tags": [
          "Core"
        ],
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "This endpoint returns details for the currently authenticated user. If the API token used to\nauthenticate to the API is not associated with a user, this method will return an error.\n",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/User"
                    },
                    "organizations": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/GetUsersCurrent200ResponseOrganizations"
                      }
                    },
                    "api_token_id": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "required": [
                    "user",
                    "organizations",
                    "api_token_id"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/APIAuthenticator400Response"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "404": {
            "$ref": "#/components/responses/NoUserAssociatedWithIdentityResponse"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    },
    "/invalidate_linked_web_session": {
      "post": {
        "operationId": "post:invalidate_linked_web_session",
        "tags": [
          "Core"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {

                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "This endpoint allows you to invalidate the web session which is associated with your authenticated\nidentity. This will only work for API identities (most likely API tokens) that were generated using the first-party application\nlogin flow.\n",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "status": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "status"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/IdentityNotLinkedToWebSession400Res"
          },
          "403": {
            "$ref": "#/components/responses/APIAuthenticator403Response"
          },
          "429": {
            "$ref": "#/components/responses/APIAuthenticator429Response"
          },
          "503": {
            "$ref": "#/components/responses/APIAuthenticator503Response"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "GetDataCenters200ResponseDataCenters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "country": {
            "$ref": "#/components/schemas/GetDataCentersPartCountry"
          }
        }
      },
      "GetDataCentersPartCountry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "MissingAPITokenEnum": {
        "type": "string",
        "enum": [
          "missing_api_token"
        ]
      },
      "UnauthorizedNetworkForAPIToken": {
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string",
            "description": "The IP address the request was received from"
          }
        }
      },
      "UnauthorizedNetworkForAPITokenEnum": {
        "type": "string",
        "enum": [
          "unauthorized_network_for_api_token"
        ]
      },
      "UnauthorizedNetworkForAPITokenSchema": {
        "type": "object",
        "description": "Network is not allowed to access the API with this API token",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPIToken"
          }
        }
      },
      "InvalidAPIToken": {
        "type": "object",
        "properties": {
          "details": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "InvalidAPITokenEnum": {
        "type": "string",
        "enum": [
          "invalid_api_token"
        ]
      },
      "InvalidAPITokenSchema": {
        "type": "object",
        "description": "The API token provided was not valid (it may not exist or have expired)",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/InvalidAPITokenEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/InvalidAPIToken"
          }
        }
      },
      "ScopeNotGrantedError": {
        "properties": {
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ScopeNotGrantedErrorEnum": {
        "type": "string",
        "enum": [
          "scope_not_granted"
        ]
      },
      "ScopeNotGrantedErrorSchema": {
        "type": "object",
        "description": "The scope required for this endpoint has not been granted to the authenticating identity",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/ScopeNotGrantedError"
          }
        }
      },
      "OneOfAPIAuthenticator403Response": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          }
        ]
      },
      "RateLimitReached": {
        "type": "object",
        "properties": {
          "total_permitted": {
            "type": "integer",
            "description": "The total number of requests per minute that are permitted"
          }
        }
      },
      "RateLimitReachedEnum": {
        "type": "string",
        "enum": [
          "rate_limit_reached"
        ]
      },
      "ServiceUnavailableEnum": {
        "type": "string",
        "enum": [
          "service_unavailable"
        ]
      },
      "GetDataCenter200ResponseDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "country": {
            "$ref": "#/components/schemas/GetDataCenterPartCountry"
          }
        }
      },
      "GetDataCenterPartCountry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "DataCenterNotFoundEnum": {
        "type": "string",
        "enum": [
          "data_center_not_found"
        ]
      },
      "GetDataCenterDefaultNetwork200ResponseNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/GetDataCenterDefaultNetworkPartDataCenter"
          }
        }
      },
      "GetDataCenterDefaultNetworkPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetOrganizations200ResponseOrganizations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sub_domain": {
            "type": "string"
          },
          "infrastructure_domain": {
            "type": "string"
          },
          "created_at": {
            "type": "integer"
          },
          "activated_at": {
            "type": "integer",
            "nullable": true
          },
          "suspended": {
            "type": "boolean"
          },
          "managed": {
            "type": "boolean"
          }
        }
      },
      "Organization": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sub_domain": {
            "type": "string"
          },
          "infrastructure_domain": {
            "type": "string"
          },
          "created_at": {
            "type": "integer"
          },
          "activated_at": {
            "type": "integer",
            "nullable": true
          },
          "suspended": {
            "type": "boolean"
          },
          "managed": {
            "type": "boolean"
          },
          "billing_name": {
            "type": "string",
            "nullable": true
          },
          "address1": {
            "type": "string",
            "nullable": true
          },
          "address2": {
            "type": "string",
            "nullable": true
          },
          "address3": {
            "type": "string",
            "nullable": true
          },
          "address4": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string",
            "nullable": true
          },
          "vat_number": {
            "type": "string",
            "nullable": true
          },
          "phone_number": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Country"
              }
            ],
            "nullable": true
          },
          "country_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryState"
              }
            ],
            "nullable": true
          }
        }
      },
      "Currency": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "iso_code": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        }
      },
      "Country": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "iso_code2": {
            "type": "string"
          },
          "iso_code3": {
            "type": "string"
          },
          "time_zone": {
            "type": "string",
            "nullable": true
          },
          "eu": {
            "type": "boolean"
          }
        }
      },
      "CountryState": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          }
        }
      },
      "OrganizationSuspendedEnum": {
        "type": "string",
        "enum": [
          "organization_suspended"
        ]
      },
      "OrganizationSuspendedSchema": {
        "type": "object",
        "description": "An organization was found from the arguments provided but it was suspended",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/OrganizationSuspendedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OrganizationNotActivatedEnum": {
        "type": "string",
        "enum": [
          "organization_not_activated"
        ]
      },
      "OrganizationNotActivatedSchema": {
        "type": "object",
        "description": "An organization was found from the arguments provided but it wasn't activated yet",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/OrganizationNotActivatedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfOrganizationNotActivatedOrganizationSuspended403Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationSuspendedSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationNotActivatedSchema"
          }
        ]
      },
      "OrganizationNotFoundEnum": {
        "type": "string",
        "enum": [
          "organization_not_found"
        ]
      },
      "OrganizationPolicy": {
        "type": "object",
        "properties": {
          "maximum_uninvoiced_balance": {
            "$ref": "#/components/schemas/DecimalOrUnlimited"
          },
          "maximum_virtual_machines": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_virtual_machine_memory": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_disk_space": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_managed_organizations": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_unallocated_ip_addresses": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_security_groups": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_virtual_networks": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_load_balancers": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_dns_zones": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_certificates": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_file_storage_volumes": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_isos": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "maximum_disk_size": {
            "$ref": "#/components/schemas/IntegerOrUnlimited"
          },
          "minimum_disk_size": {
            "$ref": "#/components/schemas/IntegerValue"
          },
          "flexible_virtual_machine_resources": {
            "type": "boolean"
          },
          "allow_suspension": {
            "type": "boolean"
          },
          "allow_restricted_traffic_types": {
            "type": "boolean"
          }
        }
      },
      "DecimalOrUnlimited": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "unlimited": {
            "type": "boolean"
          }
        }
      },
      "IntegerOrUnlimited": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "nullable": true
          },
          "unlimited": {
            "type": "boolean"
          }
        }
      },
      "IntegerValue": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PaginationObject": {
        "type": "object",
        "properties": {
          "current_page": {
            "type": "integer",
            "description": "The current page"
          },
          "total_pages": {
            "type": "integer",
            "description": "The total number of pages",
            "nullable": true
          },
          "total": {
            "type": "integer",
            "description": "The total number of items across all pages",
            "nullable": true
          },
          "per_page": {
            "type": "integer",
            "description": "The number of items per page"
          },
          "large_set": {
            "type": "boolean",
            "description": "Is this a large set and therefore the total number of records cannot be returned?"
          }
        }
      },
      "GetOrganizationUsersWithAccess200ResponseUsers": {
        "type": "object",
        "properties": {
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "nullable": true
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "avatar_url": {
            "type": "string"
          }
        }
      },
      "GetOrganizationManaged200ResponseOrganizations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sub_domain": {
            "type": "string"
          },
          "infrastructure_domain": {
            "type": "string"
          },
          "created_at": {
            "type": "integer"
          },
          "managed": {
            "type": "boolean"
          }
        }
      },
      "OrganizationLookup": {
        "description": "All 'organization[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "sub_domain": {
            "type": "string"
          }
        }
      },
      "KeyValue": {
        "description": "All 'annotations[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "key"
        ]
      },
      "OrganizationLimitReachedEnum": {
        "type": "string",
        "enum": [
          "organization_limit_reached"
        ]
      },
      "OrganizationLimitReachedSchema": {
        "type": "object",
        "description": "The maxmium number of organizations that can be created has been reached",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/OrganizationLimitReachedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "ValidationError": {
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ValidationErrorEnum": {
        "type": "string",
        "enum": [
          "validation_error"
        ]
      },
      "ValidationErrorSchema": {
        "type": "object",
        "description": "A validation error occurred with the object that was being created/updated/deleted",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ValidationErrorEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/ValidationError"
          }
        }
      },
      "OneOfOrganizationLimitReachedValidationError422Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OrganizationLimitReachedSchema"
          },
          {
            "$ref": "#/components/schemas/ValidationErrorSchema"
          }
        ]
      },
      "GetOrganizationDisks200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetOrganizationDisksPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          }
        }
      },
      "DiskStateEnum": {
        "type": "string",
        "enum": [
          "not_built",
          "failed",
          "built",
          "building",
          "installing",
          "restoring",
          "formatting",
          "resizing",
          "configuring",
          "importing"
        ]
      },
      "GetOrganizationDisksPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/GetOrganizationDisksPartVirtualMachine"
          }
        }
      },
      "GetOrganizationDisksPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "DiskArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "bus_type": {
            "$ref": "#/components/schemas/DiskBusEnum"
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenterLookup"
          },
          "size_in_gb": {
            "type": "integer",
            "description": "Only available when creating disk. Existing disks must use the resize endpoint."
          },
          "io_profile": {
            "$ref": "#/components/schemas/DiskIOProfileLookup"
          },
          "initial_file_system": {
            "$ref": "#/components/schemas/FileSystemEnum"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "virtual_machine_disk": {
            "$ref": "#/components/schemas/VirtualMachineDiskArguments"
          }
        }
      },
      "DiskBusEnum": {
        "type": "string",
        "enum": [
          "scsi",
          "virtio"
        ]
      },
      "DataCenterLookup": {
        "description": "All 'data_center[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DiskIOProfileLookup": {
        "description": "All 'io_profile[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "FileSystemEnum": {
        "type": "string",
        "enum": [
          "ext4",
          "xfs"
        ]
      },
      "StorageSpeedEnum": {
        "type": "string",
        "enum": [
          "nvme",
          "ssd"
        ]
      },
      "VirtualMachineDiskArguments": {
        "description": "All 'virtual_machine_disk[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "boot": {
            "type": "boolean"
          },
          "attach_on_boot": {
            "type": "boolean",
            "description": "Attach the disk during virtual machine start up. Default is true."
          },
          "attach": {
            "type": "boolean",
            "description": "Attach the disk once built. If the virtual machine is not running the disk will attach when started. Only available when creating disk, existing disks must use the attach endpoint."
          },
          "virtual_machine": {
            "$ref": "#/components/schemas/VirtualMachineLookup"
          }
        }
      },
      "VirtualMachineLookup": {
        "description": "All 'virtual_machine[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "PostOrganizationDisks201ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PostOrganizationDisksPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostOrganizationDisksPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "DiskIOProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "speed_in_mb": {
            "type": "integer",
            "nullable": true
          },
          "iops": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PostOrganizationDisksPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostOrganizationDisksPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PostOrganizationDisksPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PostOrganizationDisksPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "VirtualMachineDiskAttachmentStateEnum": {
        "type": "string",
        "enum": [
          "detached",
          "failed",
          "attached",
          "attaching",
          "detaching"
        ]
      },
      "DiskInstallation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "disk_template_version": {
            "$ref": "#/components/schemas/DiskTemplateVersion"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiskInstallationAttribute"
            }
          }
        }
      },
      "DiskTemplateVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "stable": {
            "type": "boolean"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "disk_template": {
            "$ref": "#/components/schemas/DiskTemplate"
          }
        }
      },
      "DiskTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "permalink": {
            "type": "string"
          },
          "universal": {
            "type": "boolean"
          },
          "latest_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskTemplateVersion"
              }
            ],
            "nullable": true
          },
          "operating_system": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OperatingSystem"
              }
            ],
            "nullable": true
          }
        }
      },
      "OperatingSystem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "badge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Attachment"
              }
            ],
            "nullable": true
          }
        }
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "file_name": {
            "type": "string"
          },
          "file_type": {
            "type": "string"
          },
          "file_size": {
            "type": "integer"
          },
          "digest": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        }
      },
      "DiskInstallationAttribute": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "protect": {
            "type": "boolean"
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "started_at": {
            "type": "integer",
            "nullable": true
          },
          "finished_at": {
            "type": "integer",
            "nullable": true
          },
          "progress": {
            "type": "integer"
          }
        }
      },
      "TaskStatusEnum": {
        "type": "string",
        "enum": [
          "pending",
          "running",
          "completed",
          "failed"
        ]
      },
      "PermissionDenied": {
        "type": "object",
        "properties": {
          "details": {
            "type": "string",
            "description": "Additional information regarding the reason why permission was denied",
            "nullable": true
          }
        }
      },
      "PermissionDeniedEnum": {
        "type": "string",
        "enum": [
          "permission_denied"
        ]
      },
      "PermissionDeniedSchema": {
        "type": "object",
        "description": "The authenticated identity is not permitted to perform this action",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/PermissionDeniedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/PermissionDenied"
          }
        }
      },
      "OneOfOrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationSuspendedSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationNotActivatedSchema"
          },
          {
            "$ref": "#/components/schemas/PermissionDeniedSchema"
          }
        ]
      },
      "TaskQueueingError": {
        "type": "object",
        "properties": {
          "details": {
            "type": "string"
          }
        }
      },
      "TaskQueueingErrorEnum": {
        "type": "string",
        "enum": [
          "task_queueing_error"
        ]
      },
      "GetDisk200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/GetDiskPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetDiskPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "GetDiskPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetDiskPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/GetDiskPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "GetDiskPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "DiskNotFoundEnum": {
        "type": "string",
        "enum": [
          "disk_not_found"
        ]
      },
      "ObjectInTrash": {
        "type": "object",
        "properties": {
          "trash_object": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TrashObject"
              }
            ],
            "nullable": true
          }
        }
      },
      "TrashObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "keep_until": {
            "type": "integer"
          },
          "object_id": {
            "type": "string"
          },
          "object_type": {
            "type": "string"
          }
        }
      },
      "ObjectInTrashEnum": {
        "type": "string",
        "enum": [
          "object_in_trash"
        ]
      },
      "DiskLookup": {
        "description": "All 'disk[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PatchDisk200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PatchDiskPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PatchDiskPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PatchDiskPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PatchDiskPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PatchDiskPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PatchDiskPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "OneOfPermissionDenied403Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          },
          {
            "$ref": "#/components/schemas/PermissionDeniedSchema"
          }
        ]
      },
      "UnassignedDiskEnum": {
        "type": "string",
        "enum": [
          "unassigned_disk"
        ]
      },
      "UnassignedDiskSchema": {
        "type": "object",
        "description": "Disk is not assigned to a virtual machine.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/UnassignedDiskEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfUnassignedDiskValidationError422Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnassignedDiskSchema"
          },
          {
            "$ref": "#/components/schemas/ValidationErrorSchema"
          }
        ]
      },
      "DeleteDisk200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/DeleteDiskPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeleteDiskPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "DeleteDiskPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DeleteDiskPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/DeleteDiskPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "DeleteDiskPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "PostDiskAssign200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PostDiskAssignPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostDiskAssignPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PostDiskAssignPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostDiskAssignPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PostDiskAssignPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PostDiskAssignPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "DiskNotFoundSchema": {
        "type": "object",
        "description": "No disk was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/DiskNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "VirtualMachineNotFoundEnum": {
        "type": "string",
        "enum": [
          "virtual_machine_not_found"
        ]
      },
      "VirtualMachineNotFoundSchema": {
        "type": "object",
        "description": "No virtual machine was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/VirtualMachineNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfDiskNotFoundVirtualMachineNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/DiskNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/VirtualMachineNotFoundSchema"
          }
        ]
      },
      "UnableToAssign": {
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "UnableToAssignEnum": {
        "type": "string",
        "enum": [
          "unable_to_assign"
        ]
      },
      "PostDiskUnassign200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PostDiskUnassignPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostDiskUnassignPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PostDiskUnassignPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostDiskUnassignPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PostDiskUnassignPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PostDiskUnassignPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "UnableToUnassign": {
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "UnableToUnassignEnum": {
        "type": "string",
        "enum": [
          "unable_to_unassign"
        ]
      },
      "PostDiskAttach200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PostDiskAttachPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostDiskAttachPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PostDiskAttachPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostDiskAttachPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PostDiskAttachPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PostDiskAttachPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "ObjectInTrashSchema": {
        "type": "object",
        "description": "The object found is in the trash and therefore cannot be manipulated through the API. It should be restored in order to run this operation.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ObjectInTrashEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/ObjectInTrash"
          }
        }
      },
      "TaskQueueingErrorSchema": {
        "type": "object",
        "description": "This error means that a background task that was needed to complete your request could not be queued",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/TaskQueueingErrorEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/TaskQueueingError"
          }
        }
      },
      "OneOfObjectInTrashTaskQueueingError406Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ObjectInTrashSchema"
          },
          {
            "$ref": "#/components/schemas/TaskQueueingErrorSchema"
          }
        ]
      },
      "PostDiskDetach200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PostDiskDetachPartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PostDiskDetachPartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PostDiskDetachPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostDiskDetachPartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PostDiskDetachPartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PostDiskDetachPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "ResizeMethodEnum": {
        "type": "string",
        "enum": [
          "offline",
          "online"
        ]
      },
      "PutDiskResize200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PutDiskResizePartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PutDiskResizePartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PutDiskResizePartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PutDiskResizePartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PutDiskResizePartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PutDiskResizePartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "PutDiskIOProfile200ResponseDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/PutDiskIOProfilePartDataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PutDiskIOProfilePartVirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "PutDiskIOProfilePartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PutDiskIOProfilePartVirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/PutDiskIOProfilePartVirtualMachine"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "PutDiskIOProfilePartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          }
        }
      },
      "DiskIOProfileNotFoundEnum": {
        "type": "string",
        "enum": [
          "disk_io_profile_not_found"
        ]
      },
      "DiskIOProfileNotFoundSchema": {
        "type": "object",
        "description": "No disk IO profile was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/DiskIOProfileNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfDiskIOProfileNotFoundDiskNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/DiskNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/DiskIOProfileNotFoundSchema"
          }
        ]
      },
      "GetVirtualMachineDisks200ResponseDisks": {
        "type": "object",
        "properties": {
          "disk": {
            "$ref": "#/components/schemas/GetVirtualMachineDisksPartDisk"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "GetVirtualMachineDisksPartDisk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          }
        }
      },
      "GetOrganizationDiskTemplates200ResponseDiskTemplates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "permalink": {
            "type": "string"
          },
          "universal": {
            "type": "boolean"
          },
          "latest_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetOrganizationDiskTemplatesPartLatestVersion"
              }
            ],
            "nullable": true
          },
          "operating_system": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetOrganizationDiskTemplatesPartOperatingSystem"
              }
            ],
            "nullable": true
          }
        }
      },
      "GetOrganizationDiskTemplatesPartLatestVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          }
        }
      },
      "GetOrganizationDiskTemplatesPartOperatingSystem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "OrganizationNotFoundSchema": {
        "type": "object",
        "description": "No organization was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/OrganizationNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OperatingSystemNotFoundEnum": {
        "type": "string",
        "enum": [
          "operating_system_not_found"
        ]
      },
      "OperatingSystemNotFoundSchema": {
        "type": "object",
        "description": "No operating system was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/OperatingSystemNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfOperatingSystemNotFoundOrganizationNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OrganizationNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/OperatingSystemNotFoundSchema"
          }
        ]
      },
      "GetDiskTemplate200ResponseDiskTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "permalink": {
            "type": "string"
          },
          "universal": {
            "type": "boolean"
          },
          "latest_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetDiskTemplatePartLatestVersion"
              }
            ],
            "nullable": true
          },
          "operating_system": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OperatingSystem"
              }
            ],
            "nullable": true
          }
        }
      },
      "GetDiskTemplatePartLatestVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "DiskTemplateNotFoundEnum": {
        "type": "string",
        "enum": [
          "disk_template_not_found"
        ]
      },
      "GetDiskTemplateVersions200ResponseDiskTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetDiskTemplateVersions200ResponseDiskTemplateVersions": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "stable": {
            "type": "boolean"
          },
          "size_in_gb": {
            "type": "integer"
          }
        }
      },
      "GetDiskTemplateVersion200ResponseDiskTemplateVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "stable": {
            "type": "boolean"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "disk_template": {
            "$ref": "#/components/schemas/GetDiskTemplateVersionPartDiskTemplate"
          }
        }
      },
      "GetDiskTemplateVersionPartDiskTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DiskTemplateVersionNotFoundEnum": {
        "type": "string",
        "enum": [
          "disk_template_version_not_found"
        ]
      },
      "GetDiskTemplateVersionSpec200ResponseDiskTemplateVersion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "stable": {
            "type": "boolean"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "disk_template": {
            "$ref": "#/components/schemas/GetDiskTemplateVersionSpecPartDiskTemplate"
          }
        }
      },
      "GetDiskTemplateVersionSpecPartDiskTemplate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "TemplateSpec": {
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplateSpecField"
            }
          }
        }
      },
      "TemplateSpecField": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/TemplateSpecFieldTypeEnum"
          },
          "label": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "required": {
            "type": "boolean"
          },
          "placeholder": {
            "type": "string",
            "nullable": true
          },
          "prefill": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TemplateSpecFieldTypeEnum": {
        "type": "string",
        "enum": [
          "Text",
          "Boolean",
          "Password",
          "Keyboard"
        ]
      },
      "GetGPUTypes200ResponseGPUTypes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "data_centers": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/GetGPUTypesPartDataCenters"
                }
              ],
              "nullable": true
            }
          }
        }
      },
      "GetGPUTypesPartDataCenters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetGPUType200ResponseGPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "data_centers": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/GetGPUTypePartDataCenters"
                }
              ],
              "nullable": true
            }
          }
        }
      },
      "GetGPUTypePartDataCenters": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GPUTypeNotFoundEnum": {
        "type": "string",
        "enum": [
          "gpu_type_not_found"
        ]
      },
      "GetDataCenterGPUTypes200ResponseGPUTypes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetOrganizationVirtualMachines200ResponseVirtualMachines": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "created_at": {
            "type": "integer"
          },
          "zone": {
            "$ref": "#/components/schemas/Zone"
          },
          "package": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetOrganizationVirtualMachinesPartPackage"
              }
            ],
            "nullable": true
          },
          "gpu_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetOrganizationVirtualMachinesPartGPUType"
              }
            ],
            "nullable": true
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrganizationVirtualMachinesPartIPAddresses"
            }
          }
        }
      },
      "Zone": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenter"
          }
        }
      },
      "DataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "country": {
            "$ref": "#/components/schemas/Country"
          }
        }
      },
      "GetOrganizationVirtualMachinesPartPackage": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "GetOrganizationVirtualMachinesPartGPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetOrganizationVirtualMachinesPartIPAddresses": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          }
        }
      },
      "GetVirtualMachine200ResponseVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "integer"
          },
          "initial_root_password": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          },
          "zone": {
            "$ref": "#/components/schemas/Zone"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization"
          },
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineGroup"
              }
            ],
            "nullable": true
          },
          "package": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachinePackage"
              }
            ],
            "nullable": true
          },
          "attached_iso": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISO"
              }
            ],
            "nullable": true
          },
          "memory_in_gb": {
            "type": "integer",
            "nullable": true
          },
          "cpu_cores": {
            "type": "integer",
            "nullable": true
          },
          "use_dedicated_cpus": {
            "type": "boolean",
            "nullable": true
          },
          "gpu_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetVirtualMachinePartGPUType"
              }
            ],
            "nullable": true
          },
          "gpus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VirtualMachineGPU"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "tag_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IPAddress"
            }
          }
        }
      },
      "VirtualMachineStateEnum": {
        "type": "string",
        "enum": [
          "stopped",
          "failed",
          "started",
          "starting",
          "allocated",
          "allocating",
          "resetting",
          "migrating",
          "stopping",
          "shutting_down",
          "transferring",
          "orphaned"
        ]
      },
      "VirtualMachineGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "segregate": {
            "type": "boolean"
          },
          "auto_segregate": {
            "type": "boolean"
          },
          "created_at": {
            "type": "integer"
          }
        }
      },
      "VirtualMachinePackage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "cpu_cores": {
            "type": "integer"
          },
          "ipv4_addresses": {
            "type": "integer"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "storage_in_gb": {
            "type": "integer"
          },
          "monthly_bandwidth_allowance_in_gb": {
            "type": "integer",
            "nullable": true
          },
          "privacy": {
            "$ref": "#/components/schemas/PrivacyTypesEnum"
          },
          "icon": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Attachment"
              }
            ],
            "nullable": true
          },
          "use_dedicated_cpus": {
            "type": "boolean"
          }
        }
      },
      "PrivacyTypesEnum": {
        "type": "string",
        "enum": [
          "public",
          "private"
        ]
      },
      "ISO": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "operating_system": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OperatingSystem"
              }
            ],
            "nullable": true
          }
        }
      },
      "GetVirtualMachinePartGPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "VirtualMachineGPU": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID for this GPU. Not available when status is \"detached\".",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/VirtualMachineGPUStatusEnum"
          },
          "pending_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineGPUPendingActionEnum"
              }
            ],
            "nullable": true
          },
          "available": {
            "type": "boolean",
            "description": "When pending action is \"attach\", this indicates if there is a GPU of the relevant type available."
          },
          "type": {
            "$ref": "#/components/schemas/GPUType"
          }
        }
      },
      "VirtualMachineGPUStatusEnum": {
        "type": "string",
        "enum": [
          "attached",
          "attaching",
          "detached",
          "detaching",
          "unknown"
        ]
      },
      "VirtualMachineGPUPendingActionEnum": {
        "type": "string",
        "enum": [
          "attach",
          "detach"
        ]
      },
      "GPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "data_centers": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DataCenter"
                }
              ],
              "nullable": true
            }
          }
        }
      },
      "Tag": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "$ref": "#/components/schemas/TagColorsEnum"
          },
          "created_at": {
            "type": "integer"
          }
        }
      },
      "TagColorsEnum": {
        "type": "string",
        "enum": [
          "red",
          "pink",
          "purple",
          "dark_blue",
          "green",
          "teal",
          "aqua",
          "light_blue",
          "yellow",
          "orange",
          "orange_red",
          "brown",
          "black",
          "dark_gray",
          "light_gray",
          "light_brown",
          "pastel_red",
          "pastel_pink",
          "pastel_purple",
          "pastel_dark_blue",
          "pastel_green",
          "pastel_teal",
          "pastel_aqua",
          "pastel_light_blue",
          "pastel_yellow",
          "pastel_orange",
          "pastel_orange_red",
          "pastel_brown",
          "pastel_black",
          "pastel_dark_gray",
          "pastel_light_gray",
          "pastel_light_brown"
        ]
      },
      "IPAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "reverse_dns": {
            "type": "string"
          },
          "vip": {
            "type": "boolean"
          },
          "label": {
            "type": "string",
            "nullable": true
          },
          "address_with_mask": {
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/Network"
          },
          "allocation_id": {
            "type": "string",
            "nullable": true
          },
          "allocation_type": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "Network": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenter"
          }
        }
      },
      "VirtualMachineArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "tag_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "gpu_type": {
            "$ref": "#/components/schemas/GPUTypeLookup"
          },
          "group": {
            "$ref": "#/components/schemas/VirtualMachineGroupLookup"
          }
        }
      },
      "GPUTypeLookup": {
        "description": "All 'gpu_type[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "VirtualMachineGroupLookup": {
        "description": "All 'group[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PatchVirtualMachine200ResponseVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "integer"
          },
          "initial_root_password": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          },
          "zone": {
            "$ref": "#/components/schemas/Zone"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization"
          },
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineGroup"
              }
            ],
            "nullable": true
          },
          "package": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachinePackage"
              }
            ],
            "nullable": true
          },
          "attached_iso": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISO"
              }
            ],
            "nullable": true
          },
          "memory_in_gb": {
            "type": "integer",
            "nullable": true
          },
          "cpu_cores": {
            "type": "integer",
            "nullable": true
          },
          "use_dedicated_cpus": {
            "type": "boolean",
            "nullable": true
          },
          "gpu_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PatchVirtualMachinePartGPUType"
              }
            ],
            "nullable": true
          },
          "gpus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VirtualMachineGPU"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "tag_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IPAddress"
            }
          }
        }
      },
      "PatchVirtualMachinePartGPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DeleteVirtualMachine200ResponseVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "integer"
          },
          "initial_root_password": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          },
          "zone": {
            "$ref": "#/components/schemas/Zone"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization"
          },
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineGroup"
              }
            ],
            "nullable": true
          },
          "package": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachinePackage"
              }
            ],
            "nullable": true
          },
          "attached_iso": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISO"
              }
            ],
            "nullable": true
          },
          "memory_in_gb": {
            "type": "integer",
            "nullable": true
          },
          "cpu_cores": {
            "type": "integer",
            "nullable": true
          },
          "use_dedicated_cpus": {
            "type": "boolean",
            "nullable": true
          },
          "gpu_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DeleteVirtualMachinePartGPUType"
              }
            ],
            "nullable": true
          },
          "gpus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VirtualMachineGPU"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "tag_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IPAddress"
            }
          }
        }
      },
      "DeleteVirtualMachinePartGPUType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "memory_type": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "VirtualMachinePackageLookup": {
        "description": "All 'virtual_machine_package[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "VirtualMachinePackageNotFoundEnum": {
        "type": "string",
        "enum": [
          "package_not_found"
        ]
      },
      "VirtualMachinePackageNotFoundSchema": {
        "type": "object",
        "description": "No package was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/VirtualMachinePackageNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfVirtualMachineNotFoundVirtualMachinePackageNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualMachineNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/VirtualMachinePackageNotFoundSchema"
          }
        ]
      },
      "VirtualMachineFlexibleResources": {
        "description": "All 'resources[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "cpu_cores": {
            "type": "integer"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "use_dedicated_cpus": {
            "type": "boolean"
          }
        },
        "required": [
          "cpu_cores",
          "memory_in_gb"
        ]
      },
      "FlexibleResourcesUnavailableToOrganizationEnum": {
        "type": "string",
        "enum": [
          "flexible_resources_unavailable_to_organization"
        ]
      },
      "FlexibleResourcesUnavailableToOrganizationSchema": {
        "type": "object",
        "description": "The organization is not permitted to use flexible resources",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/FlexibleResourcesUnavailableToOrganizationEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfFlexibleResourcesUnavailableToOrganizationPermissionDenied403Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          },
          {
            "$ref": "#/components/schemas/PermissionDeniedSchema"
          },
          {
            "$ref": "#/components/schemas/FlexibleResourcesUnavailableToOrganizationSchema"
          }
        ]
      },
      "IPAddressLookup": {
        "description": "All 'ip_address[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "IPAddressNotFoundEnum": {
        "type": "string",
        "enum": [
          "ip_address_not_found"
        ]
      },
      "IPAddressNotFoundSchema": {
        "type": "object",
        "description": "No IP addresses were found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/IPAddressNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfIPAddressNotFoundVirtualMachineNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualMachineNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/IPAddressNotFoundSchema"
          }
        ]
      },
      "NoInterfaceAvailableEnum": {
        "type": "string",
        "enum": [
          "no_interface_available"
        ]
      },
      "NoInterfaceAvailableSchema": {
        "type": "object",
        "description": "This virtual machine does not have a network interface that is compatible with the provided IP address",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/NoInterfaceAvailableEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "IPAlreadyAllocatedEnum": {
        "type": "string",
        "enum": [
          "ip_already_allocated"
        ]
      },
      "IPAlreadyAllocatedSchema": {
        "type": "object",
        "description": "This IP address has already been allocated to another resource",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/IPAlreadyAllocatedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfIPAlreadyAllocatedNoInterfaceAvailable422Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/NoInterfaceAvailableSchema"
          },
          {
            "$ref": "#/components/schemas/IPAlreadyAllocatedSchema"
          }
        ]
      },
      "NoVirtualMachineForAPITokenEnum": {
        "type": "string",
        "enum": [
          "no_virtual_machine_for_api_token"
        ]
      },
      "ZoneLookup": {
        "description": "All 'zone[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DiskTemplateLookup": {
        "description": "All 'disk_template[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "NetworkLookup": {
        "description": "All 'network[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "PostOrganizationVirtualMachinesBuild201ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostOrganizationVirtualMachinesBuild201ResponseBuild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineBuildStateEnum"
          }
        }
      },
      "VirtualMachineBuildStateEnum": {
        "type": "string",
        "enum": [
          "draft",
          "failed",
          "pending",
          "complete",
          "building"
        ]
      },
      "PostOrganizationVirtualMachinesBuild201ResponseVirtualMachineBuild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineBuildStateEnum"
          }
        }
      },
      "ResourceCreationRestricted": {
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The specific details that are restricting this organization"
            }
          }
        }
      },
      "ResourceCreationRestrictedEnum": {
        "type": "string",
        "enum": [
          "resource_creation_restricted"
        ]
      },
      "ResourceCreationRestrictedSchema": {
        "type": "object",
        "description": "The organization chosen is not permitted to create resources",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ResourceCreationRestrictedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/ResourceCreationRestricted"
          }
        }
      },
      "OneOfOrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/UnauthorizedNetworkForAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidAPITokenSchema"
          },
          {
            "$ref": "#/components/schemas/ScopeNotGrantedErrorSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationSuspendedSchema"
          },
          {
            "$ref": "#/components/schemas/OrganizationNotActivatedSchema"
          },
          {
            "$ref": "#/components/schemas/PermissionDeniedSchema"
          },
          {
            "$ref": "#/components/schemas/ResourceCreationRestrictedSchema"
          }
        ]
      },
      "ZoneNotFoundEnum": {
        "type": "string",
        "enum": [
          "zone_not_found"
        ]
      },
      "ZoneNotFoundSchema": {
        "type": "object",
        "description": "No zone was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ZoneNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "DataCenterNotFoundSchema": {
        "type": "object",
        "description": "No data center was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/DataCenterNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "DiskTemplateNotFoundSchema": {
        "type": "object",
        "description": "No disk template was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/DiskTemplateNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "NetworkNotFoundEnum": {
        "type": "string",
        "enum": [
          "network_not_found"
        ]
      },
      "NetworkNotFoundSchema": {
        "type": "object",
        "description": "No network was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/NetworkNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfDataCenterNotFoundVirtualMachinePackageNotFoundZoneNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OrganizationNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/ZoneNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/DataCenterNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/VirtualMachinePackageNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/DiskTemplateNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/NetworkNotFoundSchema"
          }
        ]
      },
      "LocationRequiredEnum": {
        "type": "string",
        "enum": [
          "location_required"
        ]
      },
      "LocationRequiredSchema": {
        "type": "object",
        "description": "A zone or a data_center argument must be provided",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/LocationRequiredEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfLocationRequiredValidationError422Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ValidationErrorSchema"
          },
          {
            "$ref": "#/components/schemas/LocationRequiredSchema"
          }
        ]
      },
      "PostOrganizationVirtualMachinesBuildFromSpec201ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostOrganizationVirtualMachinesBuildFromSpec201ResponseBuild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineBuildStateEnum"
          }
        }
      },
      "PostOrganizationVirtualMachinesBuildFromSpec201ResponseVirtualMachineBuild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineBuildStateEnum"
          }
        }
      },
      "APIAuthenticator400Schema": {
        "type": "object",
        "description": "No API token was provided in the Authorization header. Ensure a token is provided prefixed with Bearer",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/MissingAPITokenEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "InvalidSpecXML": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "string",
            "description": "A textual description of the errors with the provided XML"
          }
        }
      },
      "InvalidSpecXMLEnum": {
        "type": "string",
        "enum": [
          "invalid_spec_xml"
        ]
      },
      "InvalidSpecXMLSchema": {
        "type": "object",
        "description": "The spec XML provided is invalid",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/InvalidSpecXMLEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/InvalidSpecXML"
          }
        }
      },
      "OneOfInvalidSpecXML400Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/APIAuthenticator400Schema"
          },
          {
            "$ref": "#/components/schemas/InvalidSpecXMLSchema"
          }
        ]
      },
      "GetVirtualMachinesBuildsVirtualMachineBuild200ResponseVirtualMachineBuild": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "spec_xml": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineBuildStateEnum"
          },
          "virtual_machine": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetVirtualMachinesBuildsVirtualMachineBuildPartVirtualMachine"
              }
            ],
            "nullable": true
          },
          "created_at": {
            "type": "integer"
          }
        }
      },
      "GetVirtualMachinesBuildsVirtualMachineBuildPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          }
        }
      },
      "VirtualMachineBuildNotFoundEnum": {
        "type": "string",
        "enum": [
          "build_not_found"
        ]
      },
      "PostVirtualMachineStart200ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostVirtualMachineStop200ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostVirtualMachineShutdown200ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostVirtualMachineReset200ResponseTask": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/TaskStatusEnum"
          }
        }
      },
      "PostVirtualMachineConsoleSessions201ResponseConsoleSession": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "expires_at": {
            "type": "integer"
          },
          "virtual_machine": {
            "$ref": "#/components/schemas/PostVirtualMachineConsoleSessionsPartVirtualMachine"
          }
        }
      },
      "PostVirtualMachineConsoleSessionsPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          }
        }
      },
      "VirtualMachineMustBeStarted": {
        "type": "object",
        "properties": {
          "current_state": {
            "type": "string"
          }
        }
      },
      "VirtualMachineMustBeStartedEnum": {
        "type": "string",
        "enum": [
          "virtual_machine_must_be_started"
        ]
      },
      "VirtualMachineMustBeStartedSchema": {
        "type": "object",
        "description": "Virtual machines must be in a started state to create console sessions",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/VirtualMachineMustBeStartedEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "$ref": "#/components/schemas/VirtualMachineMustBeStarted"
          }
        }
      },
      "OneOfObjectInTrashVirtualMachineMustBeStarted406Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/ObjectInTrashSchema"
          },
          {
            "$ref": "#/components/schemas/VirtualMachineMustBeStartedSchema"
          }
        ]
      },
      "GetVirtualMachinePackages200ResponseVirtualMachinePackages": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          },
          "cpu_cores": {
            "type": "integer"
          },
          "ipv4_addresses": {
            "type": "integer"
          },
          "memory_in_gb": {
            "type": "integer"
          },
          "storage_in_gb": {
            "type": "integer"
          },
          "privacy": {
            "$ref": "#/components/schemas/PrivacyTypesEnum"
          },
          "icon": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GetVirtualMachinePackagesPartIcon"
              }
            ],
            "nullable": true
          }
        }
      },
      "GetVirtualMachinePackagesPartIcon": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        }
      },
      "AuthSSHKey": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string"
          }
        }
      },
      "AuthSSHKeyProperties": {
        "description": "All 'ssh_key[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "key": {
            "type": "string"
          }
        }
      },
      "AuthSSHKeyLookup": {
        "description": "All 'ssh_key[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "SSHKeyNotFoundEnum": {
        "type": "string",
        "enum": [
          "ssh_key_not_found"
        ]
      },
      "DeletionRestricted": {
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "asd"
            }
          }
        }
      },
      "DeletionRestrictedEnum": {
        "type": "string",
        "enum": [
          "deletion_restricted"
        ]
      },
      "APIToken": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organization_id": {
            "type": "string",
            "nullable": true
          },
          "authorized_ip_addresses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expires_at": {
            "type": "integer",
            "nullable": true
          },
          "rate_limit": {
            "type": "integer"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "secret": {
            "type": "string",
            "description": "The secret will only be returned on token creation or when a new secret is generated.",
            "nullable": true
          }
        }
      },
      "APITokenArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "authorized_ip_addresses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expires_at": {
            "type": "integer"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "APITokenLookup": {
        "description": "All 'api_token[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "APITokenNotFoundEnum": {
        "type": "string",
        "enum": [
          "api_token_not_found"
        ]
      },
      "DeleteAPIToken200ResponseAPIToken": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetOrganizationDiskBackupPolicies200ResponseDiskBackupPolicies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/GetOrganizationDiskBackupPoliciesPartSchedule"
          }
        }
      },
      "DiskBackupPolicyTarget": {
        "type": "object",
        "properties": {
          "target": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/VirtualMachine"
              },
              {
                "$ref": "#/components/schemas/Disk"
              }
            ]
          }
        }
      },
      "VirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "hostname": {
            "type": "string"
          },
          "fqdn": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "integer"
          },
          "initial_root_password": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineStateEnum"
          },
          "zone": {
            "$ref": "#/components/schemas/Zone"
          },
          "organization": {
            "$ref": "#/components/schemas/Organization"
          },
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineGroup"
              }
            ],
            "nullable": true
          },
          "package": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachinePackage"
              }
            ],
            "nullable": true
          },
          "attached_iso": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISO"
              }
            ],
            "nullable": true
          },
          "memory_in_gb": {
            "type": "integer",
            "nullable": true
          },
          "cpu_cores": {
            "type": "integer",
            "nullable": true
          },
          "use_dedicated_cpus": {
            "type": "boolean",
            "nullable": true
          },
          "gpu_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GPUType"
              }
            ],
            "nullable": true
          },
          "gpus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VirtualMachineGPU"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "tag_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IPAddress"
            }
          }
        }
      },
      "Disk": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size_in_gb": {
            "type": "integer"
          },
          "wwn": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/DiskStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "storage_speed": {
            "$ref": "#/components/schemas/StorageSpeedEnum"
          },
          "io_profile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskIOProfile"
              }
            ],
            "nullable": true
          },
          "bus_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskBusEnum"
              }
            ],
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenter"
          },
          "virtual_machine_disk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VirtualMachineDisk"
              }
            ],
            "nullable": true
          },
          "installation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiskInstallation"
              }
            ],
            "nullable": true
          }
        }
      },
      "VirtualMachineDisk": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "$ref": "#/components/schemas/VirtualMachine"
          },
          "disk": {
            "$ref": "#/components/schemas/Disk"
          },
          "attach_on_boot": {
            "type": "boolean"
          },
          "boot": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/VirtualMachineDiskAttachmentStateEnum"
          }
        }
      },
      "GetOrganizationDiskBackupPoliciesPartSchedule": {
        "type": "object",
        "properties": {
          "interval": {
            "$ref": "#/components/schemas/ScheduleIntervalTypeEnum"
          },
          "next_invocation_at": {
            "type": "integer"
          }
        }
      },
      "ScheduleIntervalTypeEnum": {
        "type": "string",
        "enum": [
          "hourly",
          "daily",
          "weekly",
          "monthly"
        ]
      },
      "GetVirtualMachineDiskBackupPolicies200ResponseDiskBackupPolicies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/GetVirtualMachineDiskBackupPoliciesPartSchedule"
          }
        }
      },
      "GetVirtualMachineDiskBackupPoliciesPartSchedule": {
        "type": "object",
        "properties": {
          "interval": {
            "$ref": "#/components/schemas/ScheduleIntervalTypeEnum"
          },
          "next_invocation_at": {
            "type": "integer"
          }
        }
      },
      "GetDiskDiskBackupPolicies200ResponseDiskBackupPolicies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/GetDiskDiskBackupPoliciesPartSchedule"
          }
        }
      },
      "GetDiskDiskBackupPoliciesPartSchedule": {
        "type": "object",
        "properties": {
          "interval": {
            "$ref": "#/components/schemas/ScheduleIntervalTypeEnum"
          },
          "next_invocation_at": {
            "type": "integer"
          }
        }
      },
      "GetDiskBackupPolicy200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/Schedule"
          },
          "auto_move_to_trash_at": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "Schedule": {
        "type": "object",
        "properties": {
          "frequency": {
            "type": "integer"
          },
          "interval": {
            "$ref": "#/components/schemas/ScheduleIntervalTypeEnum"
          },
          "minute": {
            "type": "integer"
          },
          "next_invocation_at": {
            "type": "integer"
          },
          "time": {
            "type": "integer"
          }
        }
      },
      "DiskBackupPolicyNotFoundEnum": {
        "type": "string",
        "enum": [
          "disk_backup_policy_not_found"
        ]
      },
      "DiskBackupPolicyLookup": {
        "description": "All 'disk_backup_policy[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "DeleteDiskBackupPolicy200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "DeleteDiskBackupPolicySchedule200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "auto_move_to_trash_at": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "InvalidTimestampEnum": {
        "type": "string",
        "enum": [
          "invalid_timestamp"
        ]
      },
      "InvalidTimestampSchema": {
        "type": "object",
        "description": "Timestamp must be at least 5 minutes in the future. If you want to delete something immediately, you use can use the delete endpoint.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/InvalidTimestampEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfInvalidTimestamp400Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/APIAuthenticator400Schema"
          },
          {
            "$ref": "#/components/schemas/InvalidTimestampSchema"
          }
        ]
      },
      "DiskBackupPolicyArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "retention": {
            "type": "integer"
          },
          "schedule": {
            "$ref": "#/components/schemas/ScheduleArguments"
          }
        }
      },
      "ScheduleArguments": {
        "description": "All 'schedule[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "frequency": {
            "type": "integer"
          },
          "interval": {
            "$ref": "#/components/schemas/ScheduleIntervalTypeEnum"
          },
          "minute": {
            "type": "integer"
          },
          "time": {
            "type": "integer"
          }
        }
      },
      "PatchDiskBackupPolicy200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "type": "object"
          }
        }
      },
      "PostVirtualMachineDiskBackupPolicies200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/Schedule"
          },
          "auto_move_to_trash_at": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PostDiskDiskBackupPolicies200ResponseDiskBackupPolicy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "retention": {
            "type": "integer"
          },
          "total_size": {
            "type": "number",
            "format": "float"
          },
          "target": {
            "$ref": "#/components/schemas/DiskBackupPolicyTarget"
          },
          "schedule": {
            "$ref": "#/components/schemas/Schedule"
          },
          "auto_move_to_trash_at": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "DNSZone": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "default_ttl": {
            "type": "integer"
          },
          "verified": {
            "type": "boolean"
          }
        }
      },
      "DNSZoneArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the zone (only available for creation)"
          },
          "default_ttl": {
            "type": "integer"
          }
        }
      },
      "DNSZoneNotFoundEnum": {
        "type": "string",
        "enum": [
          "dns_zone_not_found"
        ]
      },
      "DNSZoneLookup": {
        "description": "All 'dns_zone[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "DNSZoneNotVerifiedEnum": {
        "type": "string",
        "enum": [
          "dns_zone_not_verified"
        ]
      },
      "DNSRecord": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "full_name": {
            "type": "string"
          },
          "ttl": {
            "type": "integer",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DNSRecordTypesEnum"
          },
          "priority": {
            "type": "integer",
            "nullable": true
          },
          "content": {
            "type": "string"
          },
          "content_attributes": {
            "$ref": "#/components/schemas/DNSRecordContentAttributes"
          }
        }
      },
      "DNSRecordTypesEnum": {
        "type": "string",
        "enum": [
          "A",
          "AAAA",
          "ALIAS",
          "CAA",
          "CNAME",
          "IPS",
          "MX",
          "NS",
          "PTR",
          "SOA",
          "SRV",
          "SSHFP",
          "TXT",
          "VirtualMachine"
        ]
      },
      "DNSRecordContentAttributes": {
        "type": "object",
        "properties": {
          "A": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForA"
              }
            ],
            "nullable": true
          },
          "AAAA": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForAAAA"
              }
            ],
            "nullable": true
          },
          "ALIAS": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForALIAS"
              }
            ],
            "nullable": true
          },
          "CAA": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForCAA"
              }
            ],
            "nullable": true
          },
          "CNAME": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForCNAME"
              }
            ],
            "nullable": true
          },
          "IPS": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForIPS"
              }
            ],
            "nullable": true
          },
          "MX": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForMX"
              }
            ],
            "nullable": true
          },
          "NS": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForNS"
              }
            ],
            "nullable": true
          },
          "PTR": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForPTR"
              }
            ],
            "nullable": true
          },
          "SOA": {
            "type": "object",
            "nullable": true
          },
          "SRV": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForSRV"
              }
            ],
            "nullable": true
          },
          "SSHFP": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForSSHFP"
              }
            ],
            "nullable": true
          },
          "TXT": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForTXT"
              }
            ],
            "nullable": true
          },
          "VirtualMachine": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RecordContentAttributesForVirtualMachine"
              }
            ],
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForA": {
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForAAAA": {
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForALIAS": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForCAA": {
        "type": "object",
        "properties": {
          "flag": {
            "type": "string",
            "nullable": true
          },
          "tag": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForCNAME": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForIPS": {
        "type": "object",
        "properties": {
          "ip_addresses": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForMX": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForNS": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForPTR": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForSRV": {
        "type": "object",
        "properties": {
          "weight": {
            "type": "string",
            "nullable": true
          },
          "port": {
            "type": "string",
            "nullable": true
          },
          "target": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForSSHFP": {
        "type": "object",
        "properties": {
          "algorithm": {
            "type": "string",
            "nullable": true
          },
          "fingerprint_type": {
            "type": "string",
            "nullable": true
          },
          "fingerprint": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForTXT": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "RecordContentAttributesForVirtualMachine": {
        "type": "object",
        "properties": {
          "virtual_machine": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "DNSRecordArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the record"
          },
          "type": {
            "$ref": "#/components/schemas/DNSRecordTypesEnum"
          },
          "ttl": {
            "type": "integer"
          },
          "priority": {
            "type": "integer"
          },
          "content": {
            "$ref": "#/components/schemas/DNSRecordContentArguments"
          }
        }
      },
      "DNSRecordContentArguments": {
        "description": "All 'content[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "A": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForA"
          },
          "AAAA": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForAAAA"
          },
          "ALIAS": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForALIAS"
          },
          "CAA": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForCAA"
          },
          "CNAME": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForCNAME"
          },
          "IPS": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForIPS"
          },
          "MX": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForMX"
          },
          "NS": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForNS"
          },
          "PTR": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForPTR"
          },
          "SOA": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForSOA"
          },
          "SRV": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForSRV"
          },
          "SSHFP": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForSSHFP"
          },
          "TXT": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForTXT"
          },
          "VirtualMachine": {
            "$ref": "#/components/schemas/DNSRecordContentArgumentsForVirtualMachine"
          }
        }
      },
      "DNSRecordContentArgumentsForA": {
        "description": "All 'A[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForAAAA": {
        "description": "All 'AAAA[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "ip_address": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForALIAS": {
        "description": "All 'ALIAS[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForCAA": {
        "description": "All 'CAA[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "flag": {
            "type": "string"
          },
          "tag": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForCNAME": {
        "description": "All 'CNAME[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForIPS": {
        "description": "All 'IPS[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "ip_addresses": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForMX": {
        "description": "All 'MX[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForNS": {
        "description": "All 'NS[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForPTR": {
        "description": "All 'PTR[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForSOA": {
        "description": "All 'SOA[]' params are mutually exclusive, only one can be provided."
      },
      "DNSRecordContentArgumentsForSRV": {
        "description": "All 'SRV[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "weight": {
            "type": "string"
          },
          "port": {
            "type": "string"
          },
          "target": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForSSHFP": {
        "description": "All 'SSHFP[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "algorithm": {
            "type": "string"
          },
          "fingerprint_type": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForTXT": {
        "description": "All 'TXT[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "content": {
            "type": "string"
          }
        }
      },
      "DNSRecordContentArgumentsForVirtualMachine": {
        "description": "All 'VirtualMachine[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "virtual_machine": {
            "type": "string"
          }
        }
      },
      "DNSRecordNotFoundEnum": {
        "type": "string",
        "enum": [
          "dns_record_not_found"
        ]
      },
      "DNSRecordLookup": {
        "description": "All 'dns_record[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "SecurityGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "allow_all_inbound": {
            "type": "boolean"
          },
          "allow_all_outbound": {
            "type": "boolean"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SecurityGroupArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "allow_all_inbound": {
            "type": "boolean"
          },
          "allow_all_outbound": {
            "type": "boolean"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Supply references to virtual machines, virtual machine groups or tags."
            }
          }
        }
      },
      "SecurityGroupNotFoundEnum": {
        "type": "string",
        "enum": [
          "security_group_not_found"
        ]
      },
      "SecurityGroupLookup": {
        "description": "All 'security_group[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "DeleteSecurityGroup200ResponseSecurityGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetSecurityGroupRules200ResponseSecurityGroupRules": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "direction": {
            "$ref": "#/components/schemas/SecurityGroupRuleDirectionEnum"
          },
          "protocol": {
            "$ref": "#/components/schemas/SecurityGroupRuleProtocolEnum"
          },
          "action": {
            "$ref": "#/components/schemas/SecurityGroupRuleActionEnum"
          },
          "ports": {
            "type": "string",
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SecurityGroupRuleDirectionEnum": {
        "type": "string",
        "enum": [
          "inbound",
          "outbound"
        ]
      },
      "SecurityGroupRuleProtocolEnum": {
        "type": "string",
        "enum": [
          "TCP",
          "UDP",
          "ICMP"
        ]
      },
      "SecurityGroupRuleActionEnum": {
        "type": "string",
        "enum": [
          "allow",
          "deny"
        ]
      },
      "SecurityGroupRuleArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "direction": {
            "$ref": "#/components/schemas/SecurityGroupRuleDirectionEnum"
          },
          "protocol": {
            "$ref": "#/components/schemas/SecurityGroupRuleProtocolEnum"
          },
          "action": {
            "$ref": "#/components/schemas/SecurityGroupRuleActionEnum"
          },
          "ports": {
            "type": "string",
            "description": "Either single port (ie. 80), multi-port (ie. 80,443) or range (ie. 2000-3000)."
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Supply references to virtual machines, virtual machine groups, tags or custom IP addresses."
            }
          },
          "notes": {
            "type": "string"
          }
        }
      },
      "PostSecurityGroupRules200ResponseSecurityGroupRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "security_group": {
            "$ref": "#/components/schemas/PostSecurityGroupRulesPartSecurityGroup"
          },
          "direction": {
            "$ref": "#/components/schemas/SecurityGroupRuleDirectionEnum"
          },
          "protocol": {
            "$ref": "#/components/schemas/SecurityGroupRuleProtocolEnum"
          },
          "action": {
            "$ref": "#/components/schemas/SecurityGroupRuleActionEnum"
          },
          "ports": {
            "type": "string",
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PostSecurityGroupRulesPartSecurityGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "security_group": {
            "$ref": "#/components/schemas/GetSecurityGroupsRulesSecurityGroupRulePartSecurityGroup"
          },
          "direction": {
            "$ref": "#/components/schemas/SecurityGroupRuleDirectionEnum"
          },
          "protocol": {
            "$ref": "#/components/schemas/SecurityGroupRuleProtocolEnum"
          },
          "action": {
            "$ref": "#/components/schemas/SecurityGroupRuleActionEnum"
          },
          "ports": {
            "type": "string",
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetSecurityGroupsRulesSecurityGroupRulePartSecurityGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "SecurityGroupRuleNotFoundEnum": {
        "type": "string",
        "enum": [
          "security_group_rule_not_found"
        ]
      },
      "SecurityGroupRuleLookup": {
        "description": "All 'security_group_rule[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PatchSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "security_group": {
            "$ref": "#/components/schemas/PatchSecurityGroupsRulesSecurityGroupRulePartSecurityGroup"
          },
          "direction": {
            "$ref": "#/components/schemas/SecurityGroupRuleDirectionEnum"
          },
          "protocol": {
            "$ref": "#/components/schemas/SecurityGroupRuleProtocolEnum"
          },
          "action": {
            "$ref": "#/components/schemas/SecurityGroupRuleActionEnum"
          },
          "ports": {
            "type": "string",
            "nullable": true
          },
          "targets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PatchSecurityGroupsRulesSecurityGroupRulePartSecurityGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "DeleteSecurityGroupsRulesSecurityGroupRule200ResponseSecurityGroupRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "GetOrganizationFileStorageVolumes200ResponseFileStorageVolumes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/GetOrganizationFileStorageVolumesPartDataCenter"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/FileStorageVolumeStateEnum"
          },
          "nfs_location": {
            "type": "string",
            "description": "The NFS location of where to mount the volume from.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the volume in bytes.",
            "nullable": true
          }
        }
      },
      "GetOrganizationFileStorageVolumesPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "FileStorageVolumeStateEnum": {
        "type": "string",
        "enum": [
          "pending",
          "failed",
          "ready",
          "configuring"
        ]
      },
      "GetFileStorageVolume200ResponseFileStorageVolume": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/GetFileStorageVolumePartDataCenter"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/FileStorageVolumeStateEnum"
          },
          "nfs_location": {
            "type": "string",
            "description": "The NFS location of where to mount the volume from.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the volume in bytes.",
            "nullable": true
          }
        }
      },
      "GetFileStorageVolumePartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "FileStorageVolumeNotFoundEnum": {
        "type": "string",
        "enum": [
          "file_storage_volume_not_found"
        ]
      },
      "FileStorageVolumeArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Unique name to help identify the volume."
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenterLookup"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The virtual machine IDs which can access this volume."
            }
          }
        }
      },
      "PostOrganizationFileStorageVolumes201ResponseFileStorageVolume": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/PostOrganizationFileStorageVolumesPartDataCenter"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/FileStorageVolumeStateEnum"
          },
          "nfs_location": {
            "type": "string",
            "description": "The NFS location of where to mount the volume from.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the volume in bytes.",
            "nullable": true
          }
        }
      },
      "PostOrganizationFileStorageVolumesPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "FileStorageVolumeLookup": {
        "description": "All 'file_storage_volume[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PatchFileStorageVolume200ResponseFileStorageVolume": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/PatchFileStorageVolumePartDataCenter"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/FileStorageVolumeStateEnum"
          },
          "nfs_location": {
            "type": "string",
            "description": "The NFS location of where to mount the volume from.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the volume in bytes.",
            "nullable": true
          }
        }
      },
      "PatchFileStorageVolumePartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DeleteFileStorageVolume200ResponseFileStorageVolume": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/DeleteFileStorageVolumePartDataCenter"
          },
          "associations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/FileStorageVolumeStateEnum"
          },
          "nfs_location": {
            "type": "string",
            "description": "The NFS location of where to mount the volume from.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size of the volume in bytes.",
            "nullable": true
          }
        }
      },
      "DeleteFileStorageVolumePartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetOrganizationAvailableNetworks200ResponseNetworks": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/GetOrganizationAvailableNetworksPartDataCenter"
          }
        }
      },
      "GetOrganizationAvailableNetworksPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetOrganizationAvailableNetworks200ResponseVirtualNetworks": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/GetOrganizationAvailableNetworksPartDataCenter"
          }
        }
      },
      "NetworkSpeedProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "upload_speed_in_mbit": {
            "type": "integer",
            "nullable": true
          },
          "download_speed_in_mbit": {
            "type": "integer",
            "nullable": true
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetAddressLists200ResponseAddressLists": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the address list."
          },
          "global": {
            "type": "boolean",
            "description": "Whether the address list is global or not."
          }
        }
      },
      "GetOrganizationAddressLists200ResponseAddressLists": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the address list."
          },
          "global": {
            "type": "boolean",
            "description": "Whether the address list is global or not."
          }
        }
      },
      "AddressList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the address list."
          },
          "global": {
            "type": "boolean",
            "description": "Whether the address list is global or not."
          },
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressListEntry"
            }
          }
        }
      },
      "AddressListEntry": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string",
            "description": "Address or network."
          },
          "name": {
            "type": "string",
            "description": "Optional name/comment."
          }
        }
      },
      "AddressListNotFoundEnum": {
        "type": "string",
        "enum": [
          "address_list_not_found"
        ]
      },
      "AddressListArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the address list."
          }
        }
      },
      "AddressListLookup": {
        "description": "All 'address_list[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "AddressListEntryNotFoundEnum": {
        "type": "string",
        "enum": [
          "address_list_entry_not_found"
        ]
      },
      "AddressListEntryArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Address or network to add to the list."
          },
          "name": {
            "type": "string",
            "description": "Optional name/comment."
          }
        }
      },
      "AddressListEntryLookup": {
        "description": "All 'address_list_entry[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "GetOrganizationCertificates200ResponseCertificates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "issuer": {
            "$ref": "#/components/schemas/IssuerEnum"
          },
          "state": {
            "$ref": "#/components/schemas/CertificateStateEnum"
          },
          "expires_at": {
            "type": "integer",
            "nullable": true
          },
          "last_issued_at": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "IssuerEnum": {
        "type": "string",
        "enum": [
          "lets_encrypt",
          "custom",
          "self_signed"
        ]
      },
      "CertificateStateEnum": {
        "type": "string",
        "enum": [
          "pending",
          "issue_failed",
          "issued",
          "issuing"
        ]
      },
      "Certificate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "additional_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "issuer": {
            "$ref": "#/components/schemas/IssuerEnum"
          },
          "state": {
            "$ref": "#/components/schemas/CertificateStateEnum"
          },
          "created_at": {
            "type": "integer"
          },
          "expires_at": {
            "type": "integer",
            "nullable": true
          },
          "last_issued_at": {
            "type": "integer",
            "nullable": true
          },
          "issue_error": {
            "type": "string",
            "nullable": true
          },
          "authorization_method": {
            "type": "string",
            "nullable": true
          },
          "certificate_api_url": {
            "type": "string",
            "description": "This is the URL that can be used to access this certificate's details. through the certificate API (a different API to this one). If null, this means that it is no longer available. If that is the case, you can get a new URL by resetting the API token for this certificate.",
            "nullable": true
          },
          "certificate": {
            "type": "string",
            "nullable": true
          },
          "chain": {
            "type": "string",
            "nullable": true
          },
          "private_key": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CertificateNotFoundEnum": {
        "type": "string",
        "enum": [
          "certificate_not_found"
        ]
      },
      "GetOrganizationLoadBalancers200ResponseLoadBalancers": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string",
            "nullable": true
          },
          "resource_type": {
            "$ref": "#/components/schemas/LoadBalancerResourceTypesEnum"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerResource"
            }
          },
          "resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_address": {
            "$ref": "#/components/schemas/GetOrganizationLoadBalancersPartIPAddress"
          },
          "data_center": {
            "$ref": "#/components/schemas/GetOrganizationLoadBalancersPartDataCenter"
          }
        }
      },
      "LoadBalancerResourceTypesEnum": {
        "type": "string",
        "enum": [
          "virtual_machines",
          "virtual_machine_groups",
          "tags"
        ]
      },
      "LoadBalancerResource": {
        "type": "object",
        "properties": {
          "resources": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/VirtualMachine"
              },
              {
                "$ref": "#/components/schemas/VirtualMachineGroup"
              },
              {
                "$ref": "#/components/schemas/Tag"
              }
            ]
          }
        }
      },
      "GetOrganizationLoadBalancersPartIPAddress": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          }
        }
      },
      "GetOrganizationLoadBalancersPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LoadBalancerArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string"
          },
          "resource_type": {
            "$ref": "#/components/schemas/LoadBalancerResourceTypesEnum"
          },
          "resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data_center": {
            "$ref": "#/components/schemas/DataCenterLookup"
          },
          "https_redirect": {
            "type": "boolean"
          },
          "enable_weighting": {
            "type": "boolean"
          },
          "weights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerWeightsArguments"
            }
          },
          "standby_vms": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The IDs of any virtual machines that should be used as standbys in a failover situation"
            }
          }
        }
      },
      "LoadBalancerWeightsArguments": {
        "description": "All 'weights[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "virtual_machine_id": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          }
        }
      },
      "PostOrganizationLoadBalancers201ResponseLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string",
            "nullable": true
          },
          "resource_type": {
            "$ref": "#/components/schemas/LoadBalancerResourceTypesEnum"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerResource"
            }
          },
          "resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_address": {
            "$ref": "#/components/schemas/PostOrganizationLoadBalancersPartIPAddress"
          },
          "https_redirect": {
            "type": "boolean"
          },
          "backend_certificate": {
            "type": "string"
          },
          "backend_certificate_key": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/PostOrganizationLoadBalancersPartDataCenter"
          },
          "enable_weighting": {
            "type": "boolean"
          },
          "weights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerWeight"
            }
          },
          "standby_vms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PostOrganizationLoadBalancersPartIPAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "PostOrganizationLoadBalancersPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "LoadBalancerWeight": {
        "type": "object",
        "properties": {
          "virtual_machine_id": {
            "type": "string"
          },
          "weight": {
            "type": "integer"
          }
        }
      },
      "GetLoadBalancer200ResponseLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string",
            "nullable": true
          },
          "resource_type": {
            "$ref": "#/components/schemas/LoadBalancerResourceTypesEnum"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerResource"
            }
          },
          "resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_address": {
            "$ref": "#/components/schemas/GetLoadBalancerPartIPAddress"
          },
          "https_redirect": {
            "type": "boolean"
          },
          "backend_certificate": {
            "type": "string"
          },
          "backend_certificate_key": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/GetLoadBalancerPartDataCenter"
          },
          "enable_weighting": {
            "type": "boolean"
          },
          "weights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerWeight"
            }
          },
          "standby_vms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "GetLoadBalancerPartIPAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "GetLoadBalancerPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "LoadBalancerNotFoundEnum": {
        "type": "string",
        "enum": [
          "load_balancer_not_found"
        ]
      },
      "LoadBalancerLookup": {
        "description": "All 'load_balancer[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "api_reference": {
            "type": "string"
          }
        }
      },
      "PatchLoadBalancer200ResponseLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string",
            "nullable": true
          },
          "resource_type": {
            "$ref": "#/components/schemas/LoadBalancerResourceTypesEnum"
          },
          "resources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerResource"
            }
          },
          "resource_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ip_address": {
            "$ref": "#/components/schemas/PatchLoadBalancerPartIPAddress"
          },
          "https_redirect": {
            "type": "boolean"
          },
          "backend_certificate": {
            "type": "string"
          },
          "backend_certificate_key": {
            "type": "string"
          },
          "data_center": {
            "$ref": "#/components/schemas/PatchLoadBalancerPartDataCenter"
          },
          "enable_weighting": {
            "type": "boolean"
          },
          "weights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoadBalancerWeight"
            }
          },
          "standby_vms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PatchLoadBalancerPartIPAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "PatchLoadBalancerPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "DeleteLoadBalancer200ResponseLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "api_reference": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "GetLoadBalancerRules200ResponseLoadBalancerRules": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "algorithm": {
            "$ref": "#/components/schemas/LoadBalancerRuleAlgorithmEnum"
          },
          "destination_port": {
            "type": "integer"
          },
          "listen_port": {
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleProtocolEnum"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetLoadBalancerRulesPartCertificates"
            }
          },
          "check_enabled": {
            "type": "boolean"
          }
        }
      },
      "LoadBalancerRuleAlgorithmEnum": {
        "type": "string",
        "enum": [
          "round_robin",
          "least_connections",
          "sticky"
        ]
      },
      "LoadBalancerRuleProtocolEnum": {
        "type": "string",
        "enum": [
          "HTTPS",
          "TCP",
          "HTTP"
        ]
      },
      "GetLoadBalancerRulesPartCertificates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LoadBalancerRuleArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "algorithm": {
            "$ref": "#/components/schemas/LoadBalancerRuleAlgorithmEnum"
          },
          "destination_port": {
            "type": "integer"
          },
          "listen_port": {
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleProtocolEnum"
          },
          "proxy_protocol": {
            "type": "boolean"
          },
          "backend_ssl": {
            "type": "boolean"
          },
          "passthrough_ssl": {
            "type": "boolean"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CertificateLookup"
            }
          },
          "check_enabled": {
            "type": "boolean"
          },
          "check_fall": {
            "type": "integer"
          },
          "check_interval": {
            "type": "integer"
          },
          "check_path": {
            "type": "string"
          },
          "check_protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleCheckProtocolEnum"
          },
          "check_rise": {
            "type": "integer"
          },
          "check_timeout": {
            "type": "integer"
          },
          "check_http_statuses": {
            "$ref": "#/components/schemas/LoadBalancerRuleHTTPStatusesEnum"
          }
        }
      },
      "CertificateLookup": {
        "description": "All 'certificates[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "LoadBalancerRuleCheckProtocolEnum": {
        "type": "string",
        "enum": [
          "HTTP",
          "TCP"
        ]
      },
      "LoadBalancerRuleHTTPStatusesEnum": {
        "type": "string",
        "enum": [
          "2",
          "23",
          "234"
        ]
      },
      "PostLoadBalancerRules200ResponseLoadBalancerRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "algorithm": {
            "$ref": "#/components/schemas/LoadBalancerRuleAlgorithmEnum"
          },
          "destination_port": {
            "type": "integer"
          },
          "listen_port": {
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleProtocolEnum"
          },
          "proxy_protocol": {
            "type": "boolean"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PostLoadBalancerRulesPartCertificates"
            }
          },
          "backend_ssl": {
            "type": "boolean"
          },
          "passthrough_ssl": {
            "type": "boolean"
          },
          "check_enabled": {
            "type": "boolean"
          },
          "check_fall": {
            "type": "integer"
          },
          "check_interval": {
            "type": "integer"
          },
          "check_path": {
            "type": "string"
          },
          "check_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleCheckProtocolEnum"
              }
            ],
            "nullable": true
          },
          "check_rise": {
            "type": "integer"
          },
          "check_timeout": {
            "type": "integer"
          },
          "check_http_statuses": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleHTTPStatusesEnum"
              }
            ],
            "nullable": true
          },
          "load_balancer": {
            "$ref": "#/components/schemas/PostLoadBalancerRulesPartLoadBalancer"
          }
        }
      },
      "PostLoadBalancerRulesPartCertificates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "additional_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/CertificateStateEnum"
          }
        }
      },
      "PostLoadBalancerRulesPartLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "algorithm": {
            "$ref": "#/components/schemas/LoadBalancerRuleAlgorithmEnum"
          },
          "destination_port": {
            "type": "integer"
          },
          "listen_port": {
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleProtocolEnum"
          },
          "proxy_protocol": {
            "type": "boolean"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetLoadBalancersRulesLoadBalancerRulePartCertificates"
            }
          },
          "backend_ssl": {
            "type": "boolean"
          },
          "passthrough_ssl": {
            "type": "boolean"
          },
          "check_enabled": {
            "type": "boolean"
          },
          "check_fall": {
            "type": "integer"
          },
          "check_interval": {
            "type": "integer"
          },
          "check_path": {
            "type": "string"
          },
          "check_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleCheckProtocolEnum"
              }
            ],
            "nullable": true
          },
          "check_rise": {
            "type": "integer"
          },
          "check_timeout": {
            "type": "integer"
          },
          "check_http_statuses": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleHTTPStatusesEnum"
              }
            ],
            "nullable": true
          },
          "load_balancer": {
            "$ref": "#/components/schemas/GetLoadBalancersRulesLoadBalancerRulePartLoadBalancer"
          }
        }
      },
      "GetLoadBalancersRulesLoadBalancerRulePartCertificates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "additional_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/CertificateStateEnum"
          }
        }
      },
      "GetLoadBalancersRulesLoadBalancerRulePartLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LoadBalancerRuleNotFoundEnum": {
        "type": "string",
        "enum": [
          "load_balancer_rule_not_found"
        ]
      },
      "LoadBalancerRuleLookup": {
        "description": "All 'load_balancer_rule[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PatchLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "algorithm": {
            "$ref": "#/components/schemas/LoadBalancerRuleAlgorithmEnum"
          },
          "destination_port": {
            "type": "integer"
          },
          "listen_port": {
            "type": "integer"
          },
          "protocol": {
            "$ref": "#/components/schemas/LoadBalancerRuleProtocolEnum"
          },
          "proxy_protocol": {
            "type": "boolean"
          },
          "certificates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PatchLoadBalancersRulesLoadBalancerRulePartCertificates"
            }
          },
          "backend_ssl": {
            "type": "boolean"
          },
          "passthrough_ssl": {
            "type": "boolean"
          },
          "check_enabled": {
            "type": "boolean"
          },
          "check_fall": {
            "type": "integer"
          },
          "check_interval": {
            "type": "integer"
          },
          "check_path": {
            "type": "string"
          },
          "check_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleCheckProtocolEnum"
              }
            ],
            "nullable": true
          },
          "check_rise": {
            "type": "integer"
          },
          "check_timeout": {
            "type": "integer"
          },
          "check_http_statuses": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LoadBalancerRuleHTTPStatusesEnum"
              }
            ],
            "nullable": true
          },
          "load_balancer": {
            "$ref": "#/components/schemas/PatchLoadBalancersRulesLoadBalancerRulePartLoadBalancer"
          }
        }
      },
      "PatchLoadBalancersRulesLoadBalancerRulePartCertificates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "additional_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "state": {
            "$ref": "#/components/schemas/CertificateStateEnum"
          }
        }
      },
      "PatchLoadBalancersRulesLoadBalancerRulePartLoadBalancer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "DeleteLoadBalancersRulesLoadBalancerRule200ResponseLoadBalancerRule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "GetOrganizationIPAddresses200ResponseIPAddresses": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "reverse_dns": {
            "type": "string"
          },
          "vip": {
            "type": "boolean"
          },
          "allocation_id": {
            "type": "string",
            "nullable": true
          },
          "allocation_type": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "IPAddressVersionEnum": {
        "type": "string",
        "enum": [
          "ipv4",
          "ipv6"
        ]
      },
      "OneOfNetworkNotFoundOrganizationNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/OrganizationNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/NetworkNotFoundSchema"
          }
        ]
      },
      "APIAuthenticator503Schema": {
        "type": "object",
        "description": "The service is currently unavailable, please try again later",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/ServiceUnavailableEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "NoAvailableAddressesEnum": {
        "type": "string",
        "enum": [
          "no_available_addresses"
        ]
      },
      "NoAvailableAddressesSchema": {
        "type": "object",
        "description": "Our pool of addresses for that version seems to have run dry. If this issue continues, please contact support.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/NoAvailableAddressesEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfNoAvailableAddresses503Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/APIAuthenticator503Schema"
          },
          {
            "$ref": "#/components/schemas/NoAvailableAddressesSchema"
          }
        ]
      },
      "GetIPAddress200ResponseAllocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "ResourceDoesNotSupportUnallocationEnum": {
        "type": "string",
        "enum": [
          "resource_does_not_support_unallocation"
        ]
      },
      "NoAllocationEnum": {
        "type": "string",
        "enum": [
          "no_allocation"
        ]
      },
      "GetVirtualMachineNetworkInterfaces200ResponseVirtualMachineNetworkInterfaces": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfacesPartNetwork"
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfacesPartIPAddresses"
            }
          }
        }
      },
      "GetVirtualMachineNetworkInterfacesPartNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetVirtualMachineNetworkInterfacesPartIPAddresses": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "GetVirtualMachineNetworkInterface200ResponseVirtualMachineNetworkInterface": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "virtual_machine": {
            "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfacePartVirtualMachine"
          },
          "name": {
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfacePartNetwork"
          },
          "mac_address": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetVirtualMachineNetworkInterfacePartIPAddresses"
            }
          }
        }
      },
      "GetVirtualMachineNetworkInterfacePartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetVirtualMachineNetworkInterfacePartNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetVirtualMachineNetworkInterfacePartIPAddresses": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "InterfaceNotFoundEnum": {
        "type": "string",
        "enum": [
          "interface_not_found"
        ]
      },
      "InterfaceNotFoundSchema": {
        "type": "object",
        "description": "An interface could not be found for the specified network",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/InterfaceNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfInterfaceNotFoundNetworkNotFoundVirtualMachineNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualMachineNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/NetworkNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/InterfaceNotFoundSchema"
          }
        ]
      },
      "GetVMNIVMNI200ResponseVirtualMachineNetworkInterface": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "virtual_machine": {
            "$ref": "#/components/schemas/GetVMNIVMNIPartVirtualMachine"
          },
          "name": {
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/GetVMNIVMNIPartNetwork"
          },
          "mac_address": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetVMNIVMNIPartIPAddresses"
            }
          },
          "speed_profile": {
            "$ref": "#/components/schemas/GetVMNIVMNIPartSpeedProfile"
          }
        }
      },
      "GetVMNIVMNIPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetVMNIVMNIPartNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "GetVMNIVMNIPartIPAddresses": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "GetVMNIVMNIPartSpeedProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "VirtualMachineNetworkInterfaceNotFoundEnum": {
        "type": "string",
        "enum": [
          "virtual_machine_network_interface_not_found"
        ]
      },
      "VirtualMachineNetworkInterfaceLookup": {
        "description": "All 'virtual_machine_network_interface[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PostVirtualMachineNetworkInterfaceAllocateIP200ResponseVirtualMachineNetworkInterface": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "virtual_machine": {
            "$ref": "#/components/schemas/PostVirtualMachineNetworkInterfaceAllocateIPPartVirtualMachine"
          },
          "name": {
            "type": "string"
          },
          "network": {
            "$ref": "#/components/schemas/PostVirtualMachineNetworkInterfaceAllocateIPPartNetwork"
          },
          "mac_address": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "ip_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PostVirtualMachineNetworkInterfaceAllocateIPPartIPAddresses"
            }
          }
        }
      },
      "PostVirtualMachineNetworkInterfaceAllocateIPPartVirtualMachine": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "PostVirtualMachineNetworkInterfaceAllocateIPPartNetwork": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "PostVirtualMachineNetworkInterfaceAllocateIPPartIPAddresses": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "VirtualMachineNetworkInterfaceNotFoundSchema": {
        "type": "object",
        "description": "No network interface was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfIPAddressNotFoundVirtualMachineNetworkInterfaceNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/IPAddressNotFoundSchema"
          }
        ]
      },
      "InvalidIPEnum": {
        "type": "string",
        "enum": [
          "invalid_ip"
        ]
      },
      "InvalidIPSchema": {
        "type": "object",
        "description": "This IP address is not valid for this network interface.",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/InvalidIPEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfIPAlreadyAllocatedInvalidIP422Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/IPAlreadyAllocatedSchema"
          },
          {
            "$ref": "#/components/schemas/InvalidIPSchema"
          }
        ]
      },
      "NetworkSpeedProfileLookup": {
        "description": "All 'speed_profile[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "NetworkSpeedProfileNotFoundEnum": {
        "type": "string",
        "enum": [
          "network_speed_profile_not_found"
        ]
      },
      "NetworkSpeedProfileNotFoundSchema": {
        "type": "object",
        "description": "No network speed profile was found matching any of the criteria provided in the arguments",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/NetworkSpeedProfileNotFoundEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfNetworkSpeedProfileNotFoundVirtualMachineNetworkInterfaceNotFound404Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceNotFoundSchema"
          },
          {
            "$ref": "#/components/schemas/NetworkSpeedProfileNotFoundSchema"
          }
        ]
      },
      "SpeedProfileAlreadyAssignedEnum": {
        "type": "string",
        "enum": [
          "speed_profile_already_assigned"
        ]
      },
      "GetOrganizationTags200ResponseTags": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "$ref": "#/components/schemas/TagColorsEnum"
          }
        }
      },
      "TagArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "color": {
            "$ref": "#/components/schemas/TagColorsEnum"
          }
        }
      },
      "TagNotFoundEnum": {
        "type": "string",
        "enum": [
          "tag_not_found"
        ]
      },
      "TagLookup": {
        "description": "All 'tag[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "VirtualMachineGroupArguments": {
        "description": "All 'properties[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "segregate": {
            "type": "boolean"
          },
          "auto_segregate": {
            "type": "boolean"
          }
        }
      },
      "VirtualMachineGroupNotFoundEnum": {
        "type": "string",
        "enum": [
          "virtual_machine_group_not_found"
        ]
      },
      "GetOperatingSystems200ResponseOperatingSystems": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "TrashObjectNotFoundEnum": {
        "type": "string",
        "enum": [
          "trash_object_not_found"
        ]
      },
      "TrashObjectLookup": {
        "description": "All 'trash_object[]' params are mutually exclusive, only one can be provided.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "object_id": {
            "type": "string"
          }
        }
      },
      "GetZones200ResponseZones": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string",
            "nullable": true
          },
          "data_center": {
            "$ref": "#/components/schemas/GetZonesPartDataCenter"
          }
        }
      },
      "GetZonesPartDataCenter": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "permalink": {
            "type": "string"
          }
        }
      },
      "GetCountries200ResponseCountries": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CountryNotFoundEnum": {
        "type": "string",
        "enum": [
          "country_not_found"
        ]
      },
      "GetCountryCountryStates200ResponseCountryStates": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CountryStateNotFoundEnum": {
        "type": "string",
        "enum": [
          "country_state_not_found"
        ]
      },
      "GetCurrencies200ResponseCurrencies": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CurrencyNotFoundEnum": {
        "type": "string",
        "enum": [
          "currency_not_found"
        ]
      },
      "TaskNotFoundEnum": {
        "type": "string",
        "enum": [
          "task_not_found"
        ]
      },
      "GetUsersCurrent200ResponseOrganizations": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sub_domain": {
            "type": "string"
          }
        }
      },
      "NoUserAssociatedWithIdentityEnum": {
        "type": "string",
        "enum": [
          "no_user_associated_with_identity"
        ]
      },
      "IdentityNotLinkedToWebSessionEnum": {
        "type": "string",
        "enum": [
          "identity_not_linked_to_web_session"
        ]
      },
      "IdentityNotLinkedToWebSessionSchema": {
        "type": "object",
        "description": "The authenticated identity is not linked to a web session",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/IdentityNotLinkedToWebSessionEnum"
          },
          "description": {
            "type": "string"
          },
          "detail": {
            "type": "object"
          }
        }
      },
      "OneOfIdentityNotLinkedToWebSession400Res": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/APIAuthenticator400Schema"
          },
          {
            "$ref": "#/components/schemas/IdentityNotLinkedToWebSessionSchema"
          }
        ]
      }
    },
    "responses": {
      "APIAuthenticator400Response": {
        "description": "No API token was provided in the Authorization header. Ensure a token is provided prefixed with Bearer",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/MissingAPITokenEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "APIAuthenticator403Response": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfAPIAuthenticator403Response"
            }
          }
        }
      },
      "APIAuthenticator429Response": {
        "description": "You have reached the rate limit for this type of request",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/RateLimitReachedEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/RateLimitReached"
                }
              }
            }
          }
        }
      },
      "APIAuthenticator503Response": {
        "description": "The service is currently unavailable, please try again later",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/ServiceUnavailableEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DataCenterNotFoundResponse": {
        "description": "No data center was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DataCenterNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "OrganizationNotActivatedOrganizationSuspended403Res": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfOrganizationNotActivatedOrganizationSuspended403Res"
            }
          }
        }
      },
      "OrganizationNotFoundResponse": {
        "description": "No organization was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/OrganizationNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "OrganizationLimitReachedValidationError422Res": {
        "description": "422 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfOrganizationLimitReachedValidationError422Res"
            }
          }
        }
      },
      "OrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfOrganizationNotActivatedOrganizationSuspendedPermissionDenied403Res"
            }
          }
        }
      },
      "TaskQueueingErrorResponse": {
        "description": "This error means that a background task that was needed to complete your request could not be queued",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/TaskQueueingErrorEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/TaskQueueingError"
                }
              }
            }
          }
        }
      },
      "ValidationErrorResponse": {
        "description": "A validation error occurred with the object that was being created/updated/deleted",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/ValidationErrorEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/ValidationError"
                }
              }
            }
          }
        }
      },
      "DiskNotFoundResponse": {
        "description": "No disk was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DiskNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "ObjectInTrashResponse": {
        "description": "The object found is in the trash and therefore cannot be manipulated through the API. It should be restored in order to run this operation.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/ObjectInTrashEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/ObjectInTrash"
                }
              }
            }
          }
        }
      },
      "PermissionDenied403Res": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfPermissionDenied403Res"
            }
          }
        }
      },
      "UnassignedDiskValidationError422Res": {
        "description": "422 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfUnassignedDiskValidationError422Res"
            }
          }
        }
      },
      "DiskNotFoundVirtualMachineNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfDiskNotFoundVirtualMachineNotFound404Res"
            }
          }
        }
      },
      "UnableToAssignResponse": {
        "description": "The disk can not be assigned to the virtual machine.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/UnableToAssignEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/UnableToAssign"
                }
              }
            }
          }
        }
      },
      "UnableToUnassignResponse": {
        "description": "The disk can not be unassigned from the virtual machine.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/UnableToUnassignEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/UnableToUnassign"
                }
              }
            }
          }
        }
      },
      "ObjectInTrashTaskQueueingError406Res": {
        "description": "406 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfObjectInTrashTaskQueueingError406Res"
            }
          }
        }
      },
      "UnassignedDiskResponse": {
        "description": "Disk is not assigned to a virtual machine.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/UnassignedDiskEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DiskIOProfileNotFoundDiskNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfDiskIOProfileNotFoundDiskNotFound404Res"
            }
          }
        }
      },
      "VirtualMachineNotFoundResponse": {
        "description": "No virtual machine was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/VirtualMachineNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "OperatingSystemNotFoundOrganizationNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfOperatingSystemNotFoundOrganizationNotFound404Res"
            }
          }
        }
      },
      "DiskTemplateNotFoundResponse": {
        "description": "No disk template was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DiskTemplateNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DiskTemplateVersionNotFoundResponse": {
        "description": "No disk template version was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DiskTemplateVersionNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "GPUTypeNotFoundResponse": {
        "description": "No GPU type was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/GPUTypeNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "VirtualMachineNotFoundVirtualMachinePackageNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfVirtualMachineNotFoundVirtualMachinePackageNotFound404Res"
            }
          }
        }
      },
      "FlexibleResourcesUnavailableToOrganizationPermissionDenied403Res": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfFlexibleResourcesUnavailableToOrganizationPermissionDenied403Res"
            }
          }
        }
      },
      "IPAddressNotFoundVirtualMachineNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfIPAddressNotFoundVirtualMachineNotFound404Res"
            }
          }
        }
      },
      "IPAlreadyAllocatedNoInterfaceAvailable422Res": {
        "description": "422 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfIPAlreadyAllocatedNoInterfaceAvailable422Res"
            }
          }
        }
      },
      "NoVirtualMachineForAPITokenResponse": {
        "description": "No virtual machine was found for the provided API token",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/NoVirtualMachineForAPITokenEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "OrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res": {
        "description": "403 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfOrganizationNotActivatedPermissionDeniedResourceCreationRestricted403Res"
            }
          }
        }
      },
      "DataCenterNotFoundVirtualMachinePackageNotFoundZoneNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfDataCenterNotFoundVirtualMachinePackageNotFoundZoneNotFound404Res"
            }
          }
        }
      },
      "LocationRequiredValidationError422Res": {
        "description": "422 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfLocationRequiredValidationError422Res"
            }
          }
        }
      },
      "InvalidSpecXML400Res": {
        "description": "400 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfInvalidSpecXML400Res"
            }
          }
        }
      },
      "VirtualMachineBuildNotFoundResponse": {
        "description": "No build was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/VirtualMachineBuildNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "ObjectInTrashVirtualMachineMustBeStarted406Res": {
        "description": "406 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfObjectInTrashVirtualMachineMustBeStarted406Res"
            }
          }
        }
      },
      "VirtualMachinePackageNotFoundResponse": {
        "description": "No package was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/VirtualMachinePackageNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "SSHKeyNotFoundResponse": {
        "description": "No SSH key was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/SSHKeyNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DeletionRestrictedResponse": {
        "description": "Object cannot be deleted",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DeletionRestrictedEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "$ref": "#/components/schemas/DeletionRestricted"
                }
              }
            }
          }
        }
      },
      "APITokenNotFoundResponse": {
        "description": "No API token was found matching any of the criteria provided in the arguments.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/APITokenNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DiskBackupPolicyNotFoundResponse": {
        "description": "No disk backup policy was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DiskBackupPolicyNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "InvalidTimestamp400Res": {
        "description": "400 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfInvalidTimestamp400Res"
            }
          }
        }
      },
      "DNSZoneNotFoundResponse": {
        "description": "No DNS zone was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DNSZoneNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DNSZoneNotVerifiedResponse": {
        "description": "The DNS zone could not be verified, check the nameservers are set correctly",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DNSZoneNotVerifiedEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "DNSRecordNotFoundResponse": {
        "description": "No DNS record was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/DNSRecordNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "SecurityGroupNotFoundResponse": {
        "description": "No security group was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/SecurityGroupNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "SecurityGroupRuleNotFoundResponse": {
        "description": "No security group rule was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/SecurityGroupRuleNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "FileStorageVolumeNotFoundResponse": {
        "description": "No file storage volume was found matching any of the criteria provided in the arguments.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/FileStorageVolumeNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "NetworkNotFoundResponse": {
        "description": "No network was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/NetworkNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "AddressListNotFoundResponse": {
        "description": "No address list was found matching any of the criteria provided in the arguments.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/AddressListNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "AddressListEntryNotFoundResponse": {
        "description": "No address list entry was found matching any of the criteria provided in the arguments.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/AddressListEntryNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "CertificateNotFoundResponse": {
        "description": "No certificate was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/CertificateNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "LoadBalancerNotFoundResponse": {
        "description": "No load balancer was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/LoadBalancerNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "LoadBalancerRuleNotFoundResponse": {
        "description": "No load balancer rule was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/LoadBalancerRuleNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "NetworkNotFoundOrganizationNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfNetworkNotFoundOrganizationNotFound404Res"
            }
          }
        }
      },
      "NoAvailableAddresses503Res": {
        "description": "503 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfNoAvailableAddresses503Res"
            }
          }
        }
      },
      "IPAddressNotFoundResponse": {
        "description": "No IP addresses were found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/IPAddressNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "ResourceDoesNotSupportUnallocationResponse": {
        "description": "The resource this IP address belongs to does not allow you to unallocate it.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/ResourceDoesNotSupportUnallocationEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "NoAllocationResponse": {
        "description": "This IP address is not currently allocated to any object, and cannot be unallocated.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/NoAllocationEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "InterfaceNotFoundNetworkNotFoundVirtualMachineNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfInterfaceNotFoundNetworkNotFoundVirtualMachineNotFound404Res"
            }
          }
        }
      },
      "VirtualMachineNetworkInterfaceNotFoundResponse": {
        "description": "No network interface was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/VirtualMachineNetworkInterfaceNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "IPAddressNotFoundVirtualMachineNetworkInterfaceNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfIPAddressNotFoundVirtualMachineNetworkInterfaceNotFound404Res"
            }
          }
        }
      },
      "IPAlreadyAllocatedInvalidIP422Res": {
        "description": "422 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfIPAlreadyAllocatedInvalidIP422Res"
            }
          }
        }
      },
      "NetworkSpeedProfileNotFoundVirtualMachineNetworkInterfaceNotFound404Res": {
        "description": "404 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfNetworkSpeedProfileNotFoundVirtualMachineNetworkInterfaceNotFound404Res"
            }
          }
        }
      },
      "SpeedProfileAlreadyAssignedResponse": {
        "description": "This network speed profile is already assigned to this virtual machine network interface.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/SpeedProfileAlreadyAssignedEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "TagNotFoundResponse": {
        "description": "No tag was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/TagNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "VirtualMachineGroupNotFoundResponse": {
        "description": "No virtual machine group was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/VirtualMachineGroupNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "OperatingSystemNotFoundResponse": {
        "description": "No operating system was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/OperatingSystemNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "TrashObjectNotFoundResponse": {
        "description": "No trash object was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/TrashObjectNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "ZoneNotFoundResponse": {
        "description": "No zone was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/ZoneNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "CountryNotFoundResponse": {
        "description": "No country was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/CountryNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "CountryStateNotFoundResponse": {
        "description": "No country state was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/CountryStateNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "CurrencyNotFoundResponse": {
        "description": "No currency was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/CurrencyNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "TaskNotFoundResponse": {
        "description": "No task was found matching any of the criteria provided in the arguments",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/TaskNotFoundEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "NoUserAssociatedWithIdentityResponse": {
        "description": "There is no user associated with this API token",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/NoUserAssociatedWithIdentityEnum"
                },
                "description": {
                  "type": "string"
                },
                "detail": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "IdentityNotLinkedToWebSession400Res": {
        "description": "400 error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OneOfIdentityNotLinkedToWebSession400Res"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "Authenticator": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "security": [
    {
      "Authenticator": [

      ]
    }
  ]
}