diff --git a/docs/src/cudo_compute/__init__.py b/docs/src/cudo_compute/__init__.py index ce8595f..7f98e80 100644 --- a/docs/src/cudo_compute/__init__.py +++ b/docs/src/cudo_compute/__init__.py @@ -192,3 +192,5 @@ from src.cudo_compute.models.vm_state import VmState import src.cudo_compute.auth_config as AuthConfig import cudo_compute.cudo_api as cudo_api +import src.cudo_compute.auth_config as AuthConfig +import cudo_compute.cudo_api as cudo_api diff --git a/docs/src/cudo_compute/cudo_api.py b/docs/src/cudo_compute/cudo_api.py index 58b82e6..aeb3cb5 100644 --- a/docs/src/cudo_compute/cudo_api.py +++ b/docs/src/cudo_compute/cudo_api.py @@ -2,7 +2,6 @@ import os import importlib.metadata - home = os.path.expanduser("~") @@ -25,7 +24,7 @@ def client(): except: pass - client.user_agent = 'cudo-compute-python-client/'+version + client.user_agent = 'cudo-compute-python-client/' + version return client, None diff --git a/pyproject.toml b/pyproject.toml index 3530cf2..ff69b37 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cudo-compute" -version = "0.1.13" +version = "0.2.0" authors = [ { name = "Cudo Ventures", email = "dev@cudoventures.com" }, ] diff --git a/swagger/public.swagger.json b/swagger/public.swagger.json index 68c3cda..bd51096 100644 --- a/swagger/public.swagger.json +++ b/swagger/public.swagger.json @@ -1,42 +1,25 @@ { - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "schemes": [ - "https" - ], "swagger": "2.0", "info": { "title": "Cudo Compute service", "version": "1.0.0" }, "host": "rest.compute.cudo.org", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], "paths": { "/v1/api-keys": { "get": { - "description": "List the details of all API keys created by the requesting user. This does not include the API key itself which is only visible once when the API key is created.", - "tags": [ - "API keys" - ], "summary": "List", + "description": "List the details of all API keys created by the requesting user. This does not include the API key itself which is only visible once when the API key is created.", "operationId": "ListApiKeys", - "parameters": [ - { - "type": "integer", - "format": "int32", - "name": "pageNumber", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "pageSize", - "in": "query" - } - ], "responses": { "200": { "description": "A successful response.", @@ -50,25 +33,31 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "description": "Creates a new API key for the requesting user. The API key is returned in the response, and this is the only time it can be viewed.", - "tags": [ - "API keys" - ], - "summary": "Generate", - "operationId": "GenerateApiKey", + }, "parameters": [ { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/GenerateApiKeyRequest" - } + "name": "pageNumber", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "API keys" + ] + }, + "post": { + "summary": "Generate", + "description": "Creates a new API key for the requesting user. The API key is returned in the response, and this is the only time it can be viewed.", + "operationId": "GenerateApiKey", "responses": { "200": { "description": "A successful response.", @@ -82,30 +71,33 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/GenerateApiKeyRequest" + } + } + ], + "tags": [ + "API keys" + ] } }, "/v1/api-keys/{name}": { "delete": { - "description": "Deletes an API key, revoking all access for requests that use the key.", - "tags": [ - "API keys" - ], "summary": "Delete", + "description": "Deletes an API key, revoking all access for requests that use the key.", "operationId": "DeleteApiKey", - "parameters": [ - { - "type": "string", - "name": "name", - "in": "path", - "required": true - } - ], "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "type": "object", + "properties": {} } }, "default": { @@ -114,16 +106,24 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "API keys" + ] } }, "/v1/auth": { "get": { - "description": "Responds with details of the user when suitable authentication material is sent with the request.", - "tags": [ - "User" - ], "summary": "Get", + "description": "Responds with details of the user when suitable authentication material is sent with the request.", "operationId": "Get", "responses": { "200": { @@ -138,20 +138,21 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "description": "Deletes your user, deleting all records of your user, and revoking access to every resource.", + }, "tags": [ "User" - ], + ] + }, + "delete": { "summary": "Delete", + "description": "Deletes your user, deleting all records of your user, and revoking access to every resource.", "operationId": "DeleteUser", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "type": "object", + "properties": {} } }, "default": { @@ -160,14 +161,14 @@ "$ref": "#/definitions/Status" } } - } + }, + "tags": [ + "User" + ] } }, "/v1/auth/create-identity-verification-session": { "get": { - "tags": [ - "User" - ], "summary": "Get identity verification session", "operationId": "CreateIdentityVerificationSession", "responses": { @@ -183,38 +184,64 @@ "$ref": "#/definitions/Status" } } - } + }, + "tags": [ + "User" + ] } }, "/v1/auth/permissions": { "get": { - "tags": [ - "Permissions" - ], "summary": "List", "operationId": "ListUserPermissions", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListUserPermissionsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "projectId", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "string", "name": "dataCenterId", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "string", "name": "billingAccountId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Permissions" + ] + } + }, + "/v1/auth/track": { + "post": { + "operationId": "Track", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListUserPermissionsResponse" + "type": "object", + "properties": {} } }, "default": { @@ -223,34 +250,64 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TrackRequest" + } + } + ] } }, "/v1/billing-accounts": { "get": { - "tags": [ - "Billing" - ], "summary": "List billing accounts", "operationId": "ListBillingAccounts", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListBillingAccountsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "pageToken", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Billing" + ] + }, + "post": { + "summary": "Create a billing account", + "operationId": "CreateBillingAccount", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListBillingAccountsResponse" + "$ref": "#/definitions/BillingAccount" } }, "default": { @@ -259,14 +316,7 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Billing" - ], - "summary": "Create a billing account", - "operationId": "CreateBillingAccount", + }, "parameters": [ { "name": "body", @@ -277,11 +327,20 @@ } } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/invoices": { + "get": { + "summary": "List invoices", + "operationId": "ListBillingAccountInvoices", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BillingAccount" + "$ref": "#/definitions/ListBillingAccountInvoicesResponse" } }, "default": { @@ -290,45 +349,48 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/invoices": { - "get": { - "tags": [ - "Billing" - ], - "summary": "Get invoices", - "operationId": "GetBillingAccountStripeInvoices", + }, "parameters": [ { - "type": "string", "name": "id", "in": "query", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "string", "name": "startingAfter", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "string", "name": "status", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/invoices/outstanding": { + "get": { + "summary": "Get outstanding invoices", + "operationId": "ListOutstandingInvoices", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetBillingAccountStripeInvoicesResponse" + "$ref": "#/definitions/ListOutstandingInvoicesResponse" } }, "default": { @@ -337,21 +399,21 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/invoices/outstanding": { - "get": { + }, "tags": [ "Billing" - ], - "summary": "Get outstanding invoices", - "operationId": "ListOutstandingStripeInvoices", - "responses": { + ] + } + }, + "/v1/billing-accounts/{billingAccount.id}": { + "patch": { + "summary": "Update billing account", + "operationId": "UpdateBillingAccount", + "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListOutstandingStripeInvoicesResponse" + "$ref": "#/definitions/BillingAccount" } }, "default": { @@ -360,92 +422,38 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{billingAccount.id}": { - "patch": { - "tags": [ - "Billing" - ], - "summary": "Update billing account", - "operationId": "UpdateBillingAccount", + }, "parameters": [ { - "type": "string", "name": "billingAccount.id", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "updateMask" - ], - "properties": { - "billingAccount": { - "type": "object", - "properties": { - "billingThreshold": { - "$ref": "#/definitions/Decimal", - "readOnly": true - }, - "createBy": { - "type": "string", - "readOnly": true - }, - "createTime": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "demandEnabled": { - "type": "boolean", - "readOnly": true - }, - "displayName": { - "type": "string" - }, - "invoiceTime": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "monthlySpend": { - "type": "string" - }, - "stripeRef": { - "type": "string" - }, - "supplyEnabled": { - "type": "boolean", - "readOnly": true - }, - "taxIds": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/TaxId" - } - } - } - }, - "updateMask": { - "type": "string" - } - } + "$ref": "#/definitions/UpdateBillingAccountBody" } } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{billingAccountId}/add-user-permission": { + "post": { + "summary": "Add billing account user", + "operationId": "AddBillingAccountUserPermission", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BillingAccount" + "type": "object", + "properties": {} } }, "default": { @@ -454,55 +462,38 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{billingAccountId}/add-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Add billing account user", - "operationId": "AddBillingAccountUserPermission", + }, "parameters": [ { - "type": "string", "name": "billingAccountId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "userEmail", - "role" - ], - "properties": { - "dataCenterId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userEmail": { - "type": "string" - } - } + "$ref": "#/definitions/AddBillingAccountUserPermissionBody" } } ], + "tags": [ + "Permissions" + ] + } + }, + "/v1/billing-accounts/{billingAccountId}/remove-user-permission": { + "post": { + "summary": "Remove billing account user", + "operationId": "RemoveBillingAccountUserPermission", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "type": "object", + "properties": {} } }, "default": { @@ -511,55 +502,37 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{billingAccountId}/remove-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Remove billing account user", - "operationId": "RemoveBillingAccountUserPermission", + }, "parameters": [ { - "type": "string", "name": "billingAccountId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "userId", - "role" - ], - "properties": { - "dataCenterId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userId": { - "type": "string" - } - } + "$ref": "#/definitions/RemoveBillingAccountUserPermissionBody" } } ], + "tags": [ + "Permissions" + ] + } + }, + "/v1/billing-accounts/{billingAccountId}/spend/details": { + "get": { + "summary": "Get spend details", + "operationId": "GetBillingAccountSpendDetails", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/GetBillingAccountSpendDetailsResponse" } }, "default": { @@ -568,43 +541,43 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{billingAccountId}/spend/details": { - "get": { - "tags": [ - "Billing" - ], - "summary": "Get spend details", - "operationId": "GetBillingAccountSpendDetails", + }, "parameters": [ { - "type": "string", "name": "billingAccountId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "format": "date-time", "name": "startTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" }, { - "type": "string", - "format": "date-time", "name": "endTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}": { + "get": { + "summary": "Get a billing account", + "operationId": "GetBillingAccount", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetBillingAccountSpendDetailsResponse" + "$ref": "#/definitions/BillingAccount" } }, "default": { @@ -613,29 +586,28 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{id}": { - "get": { - "tags": [ - "Billing" - ], - "summary": "Get a billing account", - "operationId": "GetBillingAccount", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Billing" + ] + }, + "delete": { + "summary": "Delete billing account", + "operationId": "DeleteBillingAccount", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BillingAccount" + "type": "object", + "properties": {} } }, "default": { @@ -644,27 +616,29 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Billing" - ], - "summary": "Delete billing account", - "operationId": "DeleteBillingAccount", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/credit": { + "post": { + "summary": "Add credit to billing account", + "operationId": "CreateBillingAccountCreditPayment", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/CreateBillingAccountCreditPaymentResponse" } }, "default": { @@ -673,29 +647,48 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{id}/details": { - "get": { - "tags": [ - "Billing" - ], - "summary": "Get billing account details", - "operationId": "GetBillingAccountDetails", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" + }, + { + "name": "amount.value", + "description": "The decimal value, as a string.\n\nThe string representation consists of an optional sign, `+` (`U+002B`)\nor `-` (`U+002D`), followed by a sequence of zero or more decimal digits\n(\"the integer\"), optionally followed by a fraction, optionally followed\nby an exponent.\n\nThe fraction consists of a decimal point followed by zero or more decimal\ndigits. The string must contain at least one digit in either the integer\nor the fraction. The number formed by the sign, the integer and the\nfraction is referred to as the significand.\n\nThe exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)\nfollowed by one or more decimal digits.\n\nServices **should** normalize decimal values before storing them by:\n\n - Removing an explicitly-provided `+` sign (`+2.5` -\u003e `2.5`).\n - Replacing a zero-length integer value with `0` (`.5` -\u003e `0.5`).\n - Coercing the exponent character to lower-case (`2.5E8` -\u003e `2.5e8`).\n - Removing an explicitly-provided zero exponent (`2.5e0` -\u003e `2.5`).\n\nServices **may** perform additional normalization based on its own needs\nand the internal decimal implementation selected, such as shifting the\ndecimal point and exponent value together (example: `2.5e-1` \u003c-\u003e `0.25`).\nAdditionally, services **may** preserve trailing zeroes in the fraction\nto indicate increased precision, but are not required to do so.\n\nNote that only the `.` character is supported to divide the integer\nand the fraction; `,` **should not** be supported regardless of locale.\nAdditionally, thousand separators **should not** be supported. If a\nservice does support them, values **must** be normalized.\n\nThe ENBF grammar is:\n\n DecimalString =\n [Sign] Significand [Exponent];\n\n Sign = '+' | '-';\n\n Significand =\n Digits ['.'] [Digits] | [Digits] '.' Digits;\n\n Exponent = ('e' | 'E') [Sign] Digits;\n\n Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };\n\nServices **should** clearly document the range of supported values, the\nmaximum supported precision (total number of digits), and, if applicable,\nthe scale (number of digits after the decimal point), as well as how it\nbehaves when receiving out-of-bounds values.\n\nServices **may** choose to accept values passed as input even when the\nvalue has a higher precision or scale than the service supports, and\n**should** round the value to fit the supported scale. Alternatively, the\nservice **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)\nif precision would be lost.\n\nServices **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in\ngRPC) if the service receives a value outside of the supported range.", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "paymentMethod", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "radarSessionId", + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/credit-balance-transactions": { + "get": { + "summary": "List credit balance transactions on a billing account", + "operationId": "ListBillingAccountCreditBalanceTransactions", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetBillingAccountDetailsResponse" + "$ref": "#/definitions/ListBillingAccountCreditBalanceTransactionsResponse" } }, "default": { @@ -704,29 +697,42 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{id}/payment-methods": { - "get": { - "tags": [ - "Billing" - ], - "summary": "Get payment methods", - "operationId": "GetBillingAccountPaymentMethods", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "startingAfter", + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/details": { + "get": { + "summary": "Get billing account details", + "operationId": "GetBillingAccountDetails", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BillingAccountPaymentMethods" + "$ref": "#/definitions/GetBillingAccountDetailsResponse" } }, "default": { @@ -735,30 +741,55 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/billing-accounts/{id}/payment-methods/{paymentMethodId}": { - "delete": { - "tags": [ - "Billing" - ], - "summary": "Remove payment method", - "operationId": "RemoveBillingAccountPaymentMethod", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true - }, + "required": true, + "type": "string" + } + ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/payment-methods": { + "get": { + "summary": "Get payment methods", + "operationId": "GetBillingAccountPaymentMethods", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BillingAccountPaymentMethods" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, + "parameters": [ { - "type": "string", - "name": "paymentMethodId", + "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/payment-methods/{paymentMethodId}": { + "delete": { + "summary": "Remove payment method", + "operationId": "RemoveBillingAccountPaymentMethod", "responses": { "200": { "description": "A successful response.", @@ -772,35 +803,71 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "paymentMethodId", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Billing" + ] } }, "/v1/billing-accounts/{id}/payment-methods/{paymentMethodId}/set-default": { "post": { - "tags": [ - "Billing" - ], "summary": "Set default payment method", "operationId": "SetBillingAccountDefaultPaymentMethod", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/SetBillingAccountDefaultPaymentMethodResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "paymentMethodId", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/projects": { + "get": { + "operationId": "ListBillingAccountProjects", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/SetBillingAccountDefaultPaymentMethodResponse" + "$ref": "#/definitions/ListBillingAccountProjectsResponse" } }, "default": { @@ -809,29 +876,58 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "id", + "description": "string page_token = 2;\n int32 page_size = 3;", + "in": "path", + "required": true, + "type": "string" + } + ] } }, "/v1/billing-accounts/{id}/setup-intent": { "get": { - "tags": [ - "Billing" - ], "summary": "Get setup intent", "operationId": "GetBillingAccountSetupIntent", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/BillingAccountSetupIntent" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Billing" + ] + } + }, + "/v1/billing-accounts/{id}/transactions": { + "get": { + "summary": "List transactions on a billing account", + "operationId": "ListBillingAccountTransactions", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/BillingAccountSetupIntent" + "$ref": "#/definitions/ListBillingAccountTransactionsResponse" } }, "default": { @@ -840,35 +936,80 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "startingAfter", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Billing" + ] } }, "/v1/data-centers": { "get": { - "description": "Returns the data centers in an organization", - "tags": [ - "DataCenters" - ], "summary": "List data centers", + "description": "Returns the data centers in an organization", "operationId": "ListDataCenters", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListDataCentersResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "pageToken", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Data Centers" + ] + }, + "post": { + "summary": "Create data center", + "description": "Creates a new data center", + "operationId": "CreateDataCenter", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListDataCentersResponse" + "$ref": "#/definitions/v1.DataCenter" } }, "default": { @@ -877,30 +1018,32 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "description": "Creates a new data center", - "tags": [ - "DataCenters" - ], - "summary": "Create data center", - "operationId": "CreateDataCenter", + }, "parameters": [ { "name": "dataCenter", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/DataCenter" + "$ref": "#/definitions/v1.DataCenter" } } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{dataCenter.id}": { + "patch": { + "summary": "Update data center", + "description": "Updates a data center", + "operationId": "UpdateDataCenter", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DataCenter" + "$ref": "#/definitions/v1.DataCenter" } }, "default": { @@ -909,62 +1052,38 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenter.id}": { - "patch": { - "description": "Updates a data center", - "tags": [ - "DataCenters" - ], - "summary": "Update data center", - "operationId": "UpdateDataCenter", + }, "parameters": [ { - "type": "string", "name": "dataCenter.id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "name": "dataCenter", + "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "oneFrontendId" - ], - "properties": { - "createBy": { - "type": "string", - "readOnly": true - }, - "lngLat": { - "$ref": "#/definitions/Point" - }, - "oneFrontendId": { - "type": "string" - }, - "regionId": { - "type": "string" - }, - "renewableEnergy": { - "type": "boolean" - }, - "supplierName": { - "type": "string" - } - } + "$ref": "#/definitions/UpdateDataCenterBody" } } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{dataCenterId}/add-user-permission": { + "post": { + "summary": "Add data center user", + "operationId": "AddDataCenterUserPermission", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DataCenter" + "type": "object", + "properties": {} } }, "default": { @@ -973,82 +1092,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/add-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Add data center user", - "operationId": "AddDataCenterUserPermission", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "userEmail", - "role" - ], - "properties": { - "billingAccountId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userEmail": { - "type": "string" - } - } + "$ref": "#/definitions/AddDataCenterUserPermissionBody" } } ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - } + "tags": [ + "Permissions" + ] } }, "/v1/data-centers/{dataCenterId}/clusters": { "get": { - "description": "Returns the clusters in a data center", - "tags": [ - "DataCenters" - ], "summary": "List clusters", + "description": "Returns the clusters in a data center", "operationId": "ListClusters", - "parameters": [ - { - "type": "string", - "name": "dataCenterId", - "in": "path", - "required": true - } - ], "responses": { "200": { "description": "A successful response.", @@ -1062,25 +1132,25 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/host-count": { - "get": { - "description": "Returns the number of hosts in a data center", - "tags": [ - "DataCenters" - ], - "summary": "Get host count", - "operationId": "CountHosts", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{dataCenterId}/host-count": { + "get": { + "summary": "Get host count", + "description": "Returns the number of hosts in a data center", + "operationId": "CountHosts", "responses": { "200": { "description": "A successful response.", @@ -1094,30 +1164,60 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "dataCenterId", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Data Centers" + ] } }, "/v1/data-centers/{dataCenterId}/hosts": { "get": { - "description": "Returns the hosts in a data center", - "tags": [ - "DataCenters" - ], "summary": "List hosts", + "description": "Returns the hosts in a data center", "operationId": "ListHosts", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListHostsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{dataCenterId}/machine-type-prices": { + "get": { + "operationId": "ListDataCenterMachineTypePrices", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListHostsResponse" + "$ref": "#/definitions/ListDataCenterMachineTypePricesResponse" } }, "default": { @@ -1126,24 +1226,21 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/machine-types": { - "get": { - "tags": [ - "MachineTypes" - ], - "summary": "Get", - "operationId": "ListMachineTypes", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" } - ], + ] + } + }, + "/v1/data-centers/{dataCenterId}/machine-types": { + "get": { + "summary": "List machine types for a data center", + "operationId": "ListMachineTypes", "responses": { "200": { "description": "A successful response.", @@ -1157,30 +1254,24 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/machine-types/{machineType}": { - "get": { - "tags": [ - "MachineTypes" - ], - "summary": "Get", - "operationId": "GetMachineType", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true - }, - { - "type": "string", - "name": "machineType", - "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Machine Types" + ] + } + }, + "/v1/data-centers/{dataCenterId}/machine-types/{machineType}": { + "get": { + "summary": "Get a machine type in a data center", + "operationId": "GetMachineType", "responses": { "200": { "description": "A successful response.", @@ -1194,30 +1285,30 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/machine-types/{machineType}/live-utilization": { - "get": { - "tags": [ - "MachineTypes" - ], - "summary": "Get", - "operationId": "GetMachineTypeLiveUtilization", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "machineType", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Machine Types" + ] + } + }, + "/v1/data-centers/{dataCenterId}/machine-types/{machineType}/live-utilization": { + "get": { + "summary": "Get the utilization for a machine type in a data center", + "operationId": "GetMachineTypeLiveUtilization", "responses": { "200": { "description": "A successful response.", @@ -1231,55 +1322,36 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{dataCenterId}/remove-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Remove data center user", - "operationId": "RemoveDataCenterUserPermission", + }, "parameters": [ { - "type": "string", "name": "dataCenterId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "name": "body", - "in": "body", + "name": "machineType", + "in": "path", "required": true, - "schema": { - "type": "object", - "required": [ - "userId", - "role" - ], - "properties": { - "billingAccountId": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userId": { - "type": "string" - } - } - } + "type": "string" } ], + "tags": [ + "Machine Types" + ] + } + }, + "/v1/data-centers/{dataCenterId}/remove-user-permission": { + "post": { + "summary": "Remove data center user", + "operationId": "RemoveDataCenterUserPermission", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "type": "object", + "properties": {} } }, "default": { @@ -1288,30 +1360,38 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "dataCenterId", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/RemoveDataCenterUserPermissionBody" + } + } + ], + "tags": [ + "Permissions" + ] } }, "/v1/data-centers/{id}": { "get": { - "description": "Returns a data center", - "tags": [ - "DataCenters" - ], "summary": "Get data center", + "description": "Returns a data center", "operationId": "GetDataCenter", - "parameters": [ - { - "type": "string", - "name": "id", - "in": "path", - "required": true - } - ], "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DataCenter" + "$ref": "#/definitions/v1.DataCenter" } }, "default": { @@ -1320,28 +1400,29 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "description": "Deletes a data center", - "tags": [ - "DataCenters" - ], - "summary": "Delete data center", - "operationId": "DeleteDataCenter", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Data Centers" + ] + }, + "delete": { + "summary": "Delete data center", + "description": "Deletes a data center", + "operationId": "DeleteDataCenter", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "type": "object", + "properties": {} } }, "default": { @@ -1350,25 +1431,25 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{id}/live-utilization": { - "get": { - "description": "Returns the live utilization of a data center", - "tags": [ - "DataCenters" - ], - "summary": "Get live utilization", - "operationId": "GetDataCenterLiveUtilization", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{id}/live-utilization": { + "get": { + "summary": "Get live utilization", + "description": "Returns the live utilization of a data center", + "operationId": "GetDataCenterLiveUtilization", "responses": { "200": { "description": "A successful response.", @@ -1382,57 +1463,89 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Data Centers" + ] } }, "/v1/data-centers/{id}/revenue": { "get": { - "description": "Returns the revenue of a data center over time", - "tags": [ - "DataCenters" - ], "summary": "Get revenue time series", + "description": "Returns the revenue of a data center over time", "operationId": "GetDataCenterRevenueTimeSeries", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/GetDataCenterRevenueTimeSeriesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "format": "date-time", "name": "startTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" }, { - "type": "string", - "format": "date-time", "name": "endTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" }, { + "name": "interval", + "in": "query", + "required": true, + "type": "string", "enum": [ "INTERVAL_UNKNOWN", "INTERVAL_DAY", "INTERVAL_WEEK", "INTERVAL_MONTH" ], - "type": "string", - "default": "INTERVAL_UNKNOWN", - "name": "interval", - "in": "query", - "required": true + "default": "INTERVAL_UNKNOWN" } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/data-centers/{id}/revenue-by-resource": { + "get": { + "summary": "Get revenue by resource", + "description": "Returns the revenue of a data center by resource (CPU, Memory, Storage, etc.)", + "operationId": "GetDataCenterRevenueByResource", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetDataCenterRevenueTimeSeriesResponse" + "$ref": "#/definitions/GetDataCenterRevenueByResourceResponse" } }, "default": { @@ -1441,44 +1554,43 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/data-centers/{id}/revenue-by-resource": { - "get": { - "description": "Returns the revenue of a data center by resource (CPU, Memory, Storage, etc.)", - "tags": [ - "DataCenters" - ], - "summary": "Get revenue by resource", - "operationId": "GetDataCenterRevenueByResource", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "format": "date-time", "name": "startTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" }, { - "type": "string", - "format": "date-time", "name": "endTime", "in": "query", - "required": true + "required": true, + "type": "string", + "format": "date-time" } ], + "tags": [ + "Data Centers" + ] + } + }, + "/v1/project/{projectId}/ssh-keys": { + "get": { + "summary": "List SSH keys", + "operationId": "ListProjectSshKeys", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetDataCenterRevenueByResourceResponse" + "$ref": "#/definitions/ListProjectSshKeysResponse" } }, "default": { @@ -1487,29 +1599,29 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/project/{projectId}/ssh-keys": { - "get": { - "tags": [ - "Projects" - ], - "summary": "List SSH keys", - "operationId": "ListProjectSshKeys", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Projects" + ] + } + }, + "/v1/projects": { + "get": { + "summary": "List", + "operationId": "ListProjects", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListProjectSshKeysResponse" + "$ref": "#/definitions/ListProjectsResponse" } }, "default": { @@ -1518,34 +1630,34 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects": { - "get": { - "tags": [ - "Projects" - ], - "summary": "List", - "operationId": "ListProjects", + }, "parameters": [ { - "type": "string", "name": "pageToken", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Projects" + ] + }, + "post": { + "summary": "Create", + "operationId": "CreateProject", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListProjectsResponse" + "$ref": "#/definitions/Project" } }, "default": { @@ -1554,14 +1666,7 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Projects" - ], - "summary": "Create", - "operationId": "CreateProject", + }, "parameters": [ { "name": "project", @@ -1572,6 +1677,15 @@ } } ], + "tags": [ + "Projects" + ] + } + }, + "/v1/projects/{id}": { + "get": { + "summary": "Get", + "operationId": "GetProject", "responses": { "200": { "description": "A successful response.", @@ -1585,29 +1699,28 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{id}": { - "get": { - "tags": [ - "Projects" - ], - "summary": "Get", - "operationId": "GetProject", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Projects" + ] + }, + "delete": { + "summary": "Delete", + "operationId": "DeleteProject", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/Project" + "type": "object", + "properties": {} } }, "default": { @@ -1616,27 +1729,29 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Projects" - ], - "summary": "Delete", - "operationId": "DeleteProject", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Projects" + ] + } + }, + "/v1/projects/{project.id}": { + "patch": { + "summary": "Update", + "operationId": "UpdateProject", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/Project" } }, "default": { @@ -1645,54 +1760,38 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{project.id}": { - "patch": { - "tags": [ - "Projects" - ], - "summary": "Update", - "operationId": "UpdateProject", + }, "parameters": [ { - "type": "string", "name": "project.id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "name": "project", + "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "billingAccountId" - ], - "properties": { - "billingAccountId": { - "type": "string" - }, - "createBy": { - "type": "string", - "readOnly": true - }, - "resourceCount": { - "type": "integer", - "format": "int32", - "readOnly": true - } - } + "$ref": "#/definitions/UpdateProjectBody" } } ], + "tags": [ + "Projects" + ] + } + }, + "/v1/projects/{projectId}/add-user-permission": { + "post": { + "summary": "Add project user", + "operationId": "AddProjectUserPermission", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/Project" + "type": "object", + "properties": {} } }, "default": { @@ -1701,81 +1800,32 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/add-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Add project user", - "operationId": "AddProjectUserPermission", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "userEmail", - "role" - ], - "properties": { - "billingAccountId": { - "type": "string" - }, - "dataCenterId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userEmail": { - "type": "string" - } - } + "$ref": "#/definitions/AddProjectUserPermissionBody" } } ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "type": "object" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - } + "tags": [ + "Permissions" + ] } }, "/v1/projects/{projectId}/count-vms": { "get": { - "tags": [ - "Virtual Machines" - ], "summary": "Count", "operationId": "CountVMs", - "parameters": [ - { - "type": "string", - "name": "projectId", - "in": "path", - "required": true - } - ], "responses": { "200": { "description": "A successful response.", @@ -1789,40 +1839,72 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Virtual Machines" + ] } }, "/v1/projects/{projectId}/disk/{id}/attach": { "patch": { - "tags": [ - "Disks" - ], "summary": "Attach storage disk to VM", "operationId": "AttachStorageDisk", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/AttachStorageDiskResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "vmId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/disk/{id}/detach": { + "put": { + "summary": "Detach storage disk from VM", + "operationId": "DetachStorageDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/AttachStorageDiskResponse" + "$ref": "#/definitions/DetachStorageDiskResponse" } }, "default": { @@ -1831,35 +1913,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/disk/{id}/detach": { - "put": { - "tags": [ - "Disks" - ], - "summary": "Detach storage disk from VM", - "operationId": "DetachStorageDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/disks": { + "get": { + "summary": "List disks", + "operationId": "ListDisks", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DetachStorageDiskResponse" + "$ref": "#/definitions/ListDisksResponse" } }, "default": { @@ -1868,46 +1950,47 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/disks": { - "get": { - "tags": [ - "Disks" - ], - "summary": "List disks", - "operationId": "ListDisks", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "string", "name": "dataCenterId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Disks" + ] + }, + "post": { + "summary": "Create storage disk", + "operationId": "CreateStorageDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListDisksResponse" + "$ref": "#/definitions/CreateStorageDiskResponse" } }, "default": { @@ -1916,43 +1999,37 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Disks" - ], - "summary": "Create storage disk", - "operationId": "CreateStorageDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "dataCenterId": { - "type": "string" - }, - "disk": { - "$ref": "#/definitions/Disk" - } - } + "$ref": "#/definitions/CreateStorageDiskBody" } } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/disks/{id}": { + "get": { + "summary": "List disks", + "operationId": "GetDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/CreateStorageDiskResponse" + "$ref": "#/definitions/GetDiskResponse" } }, "default": { @@ -1961,35 +2038,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/disks/{id}": { - "get": { - "tags": [ - "Disks" - ], - "summary": "List disks", - "operationId": "GetDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Disks" + ] + }, + "delete": { + "summary": "Delete storage disk", + "operationId": "DeleteStorageDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetDiskResponse" + "$ref": "#/definitions/DeleteStorageDiskResponse" } }, "default": { @@ -1998,33 +2073,35 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Disks" - ], - "summary": "Delete storage disk", - "operationId": "DeleteStorageDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/disks/{id}/revert": { + "post": { + "summary": "Revert Disk to Snapshot", + "operationId": "RevertDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteStorageDiskResponse" + "$ref": "#/definitions/RevertDiskResponse" } }, "default": { @@ -2033,47 +2110,47 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/disks/{id}/revert": { - "post": { - "tags": [ - "Disks" - ], - "summary": "Revert Disk to Snapshot", - "operationId": "RevertDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "snapshotId", "in": "query", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "vmId", "in": "query", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/disks/{id}/snapshots": { + "get": { + "summary": "List Disk Snapshots", + "operationId": "ListDiskSnapshots", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/RevertDiskResponse" + "$ref": "#/definitions/ListDiskSnapshotsResponse" } }, "default": { @@ -2082,35 +2159,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/disks/{id}/snapshots": { - "get": { - "tags": [ - "Disks" - ], - "summary": "List Disk Snapshots", - "operationId": "ListDiskSnapshots", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], - "responses": { - "200": { + "tags": [ + "Disks" + ] + }, + "delete": { + "summary": "Delete Disk Snapshots", + "operationId": "DeleteDiskSnapshot", + "responses": { + "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListDiskSnapshotsResponse" + "$ref": "#/definitions/DeleteDiskSnapshotResponse" } }, "default": { @@ -2119,48 +2194,40 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Disks" - ], - "summary": "Create Disk Snapshot", - "operationId": "CreateDiskSnapshot", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "name": "body", - "in": "body", + "name": "snapshotId", + "in": "query", "required": true, - "schema": { - "type": "object", - "required": [ - "snapshotId", - "vmId" - ], - "properties": { - "snapshotId": { - "type": "string" - }, - "vmId": { - "type": "string" - } - } - } + "type": "string" + }, + { + "name": "vmId", + "in": "query", + "required": true, + "type": "string" } ], + "tags": [ + "Disks" + ] + }, + "post": { + "summary": "Create Disk Snapshot", + "operationId": "CreateDiskSnapshot", "responses": { "200": { "description": "A successful response.", @@ -2174,45 +2241,43 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Disks" - ], - "summary": "Delete Disk Snapshots", - "operationId": "DeleteDiskSnapshot", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "type": "string", - "name": "snapshotId", - "in": "query", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "name": "vmId", - "in": "query", - "required": true + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateDiskSnapshotBody" + } } ], + "tags": [ + "Disks" + ] + } + }, + "/v1/projects/{projectId}/images": { + "get": { + "summary": "List private VM images", + "operationId": "ListPrivateVMImages", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteDiskSnapshotResponse" + "$ref": "#/definitions/ListPrivateVMImagesResponse" } }, "default": { @@ -2221,41 +2286,41 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/images": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "List private VM images", - "operationId": "ListPrivateVMImages", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Virtual Machines" + ] + }, + "post": { + "summary": "Create private VM image", + "operationId": "CreatePrivateVMImage", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListPrivateVMImagesResponse" + "$ref": "#/definitions/CreatePrivateVMImageResponse" } }, "default": { @@ -2264,44 +2329,47 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Create private VM image", - "operationId": "CreatePrivateVMImage", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "vmId", "in": "query", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "query", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "description", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/images/{id}": { + "get": { + "summary": "Get private VM image", + "operationId": "GetPrivateVMImage", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/CreatePrivateVMImageResponse" + "$ref": "#/definitions/GetPrivateVMImageResponse" } }, "default": { @@ -2310,35 +2378,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/images/{id}": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "Get private VM image", - "operationId": "GetPrivateVMImage", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + }, + "delete": { + "summary": "Delete private VM image", + "operationId": "DeletePrivateVMImage", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetPrivateVMImageResponse" + "$ref": "#/definitions/DeletePrivateVMImageResponse" } }, "default": { @@ -2347,33 +2413,28 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Update private VM image", - "operationId": "UpdatePrivateVMImage", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "type": "string", - "name": "description", - "in": "query" + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + }, + "post": { + "summary": "Update private VM image", + "operationId": "UpdatePrivateVMImage", "responses": { "200": { "description": "A successful response.", @@ -2387,33 +2448,41 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Virtual Machines" - ], - "summary": "Delete private VM image", - "operationId": "DeletePrivateVMImage", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" + }, + { + "name": "description", + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/networks": { + "get": { + "summary": "List networks", + "operationId": "ListNetworks", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeletePrivateVMImageResponse" + "$ref": "#/definitions/ListNetworksResponse" } }, "default": { @@ -2422,41 +2491,41 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks": { - "get": { - "tags": [ - "Networks" - ], - "summary": "List networks", - "operationId": "ListNetworks", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Networks" + ] + }, + "post": { + "summary": "Create network", + "operationId": "CreateNetwork", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListNetworksResponse" + "$ref": "#/definitions/CreateNetworkResponse" } }, "default": { @@ -2465,58 +2534,37 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Networks" - ], - "summary": "Create network", - "operationId": "CreateNetwork", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "dataCenterId", - "id", - "cidrPrefix", - "networkId" - ], - "properties": { - "cidrPrefix": { - "type": "string" - }, - "dataCenterId": { - "type": "string" - }, - "id": { - "type": "string" - }, - "networkId": { - "type": "string" - }, - "vrouterSize": { - "$ref": "#/definitions/VRouterSize" - } - } + "$ref": "#/definitions/CreateNetworkBody" } } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/networks/security-groups": { + "get": { + "summary": "List security groups", + "operationId": "ListSecurityGroups", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/CreateNetworkResponse" + "$ref": "#/definitions/ListSecurityGroupsResponse" } }, "default": { @@ -2525,46 +2573,49 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks/security-groups": { - "get": { - "tags": [ - "Networks" - ], - "summary": "List security groups", - "operationId": "ListSecurityGroups", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "dataCenterId", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/networks/security-groups/{id}": { + "get": { + "summary": "Get a security group", + "operationId": "GetSecurityGroup", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListSecurityGroupsResponse" + "$ref": "#/definitions/GetSecurityGroupResponse" } }, "default": { @@ -2573,35 +2624,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks/security-groups/{id}": { - "get": { - "tags": [ - "Networks" - ], - "summary": "Get a security group", - "operationId": "GetSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + }, + "delete": { + "summary": "Delete security group", + "operationId": "DeleteSecurityGroup", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetSecurityGroupResponse" + "$ref": "#/definitions/DeleteSecurityGroupResponse" } }, "default": { @@ -2610,33 +2659,35 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Networks" - ], - "summary": "Delete security group", - "operationId": "DeleteSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/networks/{id}": { + "get": { + "summary": "Get network", + "operationId": "GetNetwork", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteSecurityGroupResponse" + "$ref": "#/definitions/GetNetworkResponse" } }, "default": { @@ -2645,35 +2696,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks/{id}": { - "get": { - "tags": [ - "Networks" - ], - "summary": "Get network", - "operationId": "GetNetwork", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + }, + "delete": { + "summary": "Delete network", + "operationId": "DeleteNetwork", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetNetworkResponse" + "$ref": "#/definitions/DeleteNetworkResponse" } }, "default": { @@ -2682,39 +2731,35 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Networks" - ], - "summary": "Delete network", - "operationId": "DeleteNetwork", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "type": "string", - "name": "networkId", - "in": "query", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/networks/{id}/start": { + "post": { + "summary": "Start network", + "operationId": "StartNetwork", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteNetworkResponse" + "$ref": "#/definitions/StartNetworkResponse" } }, "default": { @@ -2723,41 +2768,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks/{id}/start": { - "post": { - "tags": [ - "Networks" - ], - "summary": "Start network", - "operationId": "StartNetwork", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "type": "string", - "name": "networkId", - "in": "query", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/networks/{id}/stop": { + "post": { + "summary": "Stop network", + "operationId": "StopNetwork", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/StartNetworkResponse" + "$ref": "#/definitions/StopNetworkResponse" } }, "default": { @@ -2766,41 +2805,36 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/networks/{id}/stop": { - "post": { - "tags": [ - "Networks" - ], - "summary": "Stop network", - "operationId": "StopNetwork", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "type": "string", - "name": "networkId", - "in": "query", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{projectId}/object-storage/activate": { + "post": { + "summary": "Allow the use of S3 compatible storage in a project", + "operationId": "Activate", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/StopNetworkResponse" + "type": "object", + "properties": {} } }, "default": { @@ -2809,42 +2843,37 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/activate": { - "post": { - "tags": [ - "Object Storage" - ], - "summary": "Allow the use of S3 compatible storage in a project", - "operationId": "Activate", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "dataCenterId": { - "type": "string" - } - } + "$ref": "#/definitions/ActivateBody" } } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/buckets": { + "get": { + "summary": "List buckets", + "operationId": "ListObjectStorageBuckets", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/ListObjectStorageBucketsResponse" } }, "default": { @@ -2853,41 +2882,43 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/buckets": { - "get": { - "tags": [ - "Object Storage" - ], - "summary": "List buckets", - "operationId": "ListObjectStorageBuckets", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/buckets/{id}": { + "get": { + "summary": "Get details for a bucket", + "operationId": "GetObjectStorageBucket", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListObjectStorageBucketsResponse" + "$ref": "#/definitions/ObjectStorageBucket" } }, "default": { @@ -2896,35 +2927,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/buckets/{id}": { - "get": { - "tags": [ - "Object Storage" - ], - "summary": "Get details for a bucket", - "operationId": "GetObjectStorageBucket", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/session-key": { + "get": { + "summary": "Generate temporary key for storage bucket access", + "operationId": "GetObjectStorageSessionKey", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ObjectStorageBucket" + "$ref": "#/definitions/GetObjectStorageSessionKeyResponse" } }, "default": { @@ -2933,34 +2964,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/session-key": { - "get": { - "tags": [ - "Object Storage" - ], - "summary": "Generate temporary key for storage bucket access", - "operationId": "GetObjectStorageSessionKey", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "dataCenterId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/users": { + "get": { + "summary": "List storage users", + "operationId": "ListObjectStorageUsers", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/GetObjectStorageSessionKeyResponse" + "$ref": "#/definitions/ListObjectStorageUsersResponse" } }, "default": { @@ -2969,41 +3001,41 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/users": { - "get": { - "tags": [ - "Object Storage" - ], - "summary": "List storage users", - "operationId": "ListObjectStorageUsers", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Object Storage" + ] + }, + "post": { + "summary": "Create user that stores keys for storage buckets", + "operationId": "CreateObjectStorageUser", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListObjectStorageUsersResponse" + "$ref": "#/definitions/ObjectStorageUser" } }, "default": { @@ -3012,40 +3044,37 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Object Storage" - ], - "summary": "Create user that stores keys for storage buckets", - "operationId": "CreateObjectStorageUser", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - } + "$ref": "#/definitions/CreateObjectStorageUserBody" } } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/users/{id}": { + "delete": { + "summary": "Delete object storage user", + "operationId": "DeleteObjectStorageUser", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ObjectStorageUser" + "$ref": "#/definitions/DeleteObjectStorageUserResponse" } }, "default": { @@ -3054,38 +3083,28 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/users/{id}": { - "post": { - "tags": [ - "Object Storage" - ], - "summary": "Generate access key for storage buckets", - "operationId": "GenerateObjectStorageKey", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true - }, - { - "name": "body", - "in": "body", "required": true, - "schema": { - "type": "object" - } + "type": "string" } ], + "tags": [ + "Object Storage" + ] + }, + "post": { + "summary": "Generate access key for storage buckets", + "operationId": "GenerateObjectStorageKey", "responses": { "200": { "description": "A successful response.", @@ -3099,33 +3118,35 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "Object Storage" - ], - "summary": "Delete object storage user", - "operationId": "DeleteObjectStorageUser", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/users/{id}/keys": { + "get": { + "summary": "List storage user keys", + "operationId": "ListObjectStorageKeys", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteObjectStorageUserResponse" + "$ref": "#/definitions/ListObjectStorageKeysResponse" } }, "default": { @@ -3134,47 +3155,49 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/object-storage/users/{id}/keys": { - "get": { - "tags": [ - "Object Storage" - ], - "summary": "List storage user keys", - "operationId": "ListObjectStorageKeys", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/object-storage/users/{id}/keys/{accessKey}": { + "delete": { + "summary": "Delete object storage user key", + "operationId": "DeleteObjectStorageKey", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListObjectStorageKeysResponse" + "$ref": "#/definitions/DeleteObjectStorageKeyResponse" } }, "default": { @@ -3183,38 +3206,42 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "Object Storage" - ], - "summary": "Delete object storage user", - "operationId": "DeleteObjectStorageKey", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "accessKey", - "in": "query" + "in": "path", + "required": true, + "type": "string" } ], - "responses": { - "200": { - "description": "A successful response.", + "tags": [ + "Object Storage" + ] + } + }, + "/v1/projects/{projectId}/remove-user-permission": { + "post": { + "summary": "Remove project user", + "operationId": "RemoveProjectUserPermission", + "responses": { + "200": { + "description": "A successful response.", "schema": { - "$ref": "#/definitions/DeleteObjectStorageKeyResponse" + "type": "object", + "properties": {} } }, "default": { @@ -3223,55 +3250,37 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/remove-user-permission": { - "post": { - "tags": [ - "Permissions" - ], - "summary": "Remove project user", - "operationId": "RemoveProjectUserPermission", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "userId", - "role" - ], - "properties": { - "billingAccountId": { - "type": "string" - }, - "dataCenterId": { - "type": "string" - }, - "role": { - "$ref": "#/definitions/Role" - }, - "userId": { - "type": "string" - } - } + "$ref": "#/definitions/RemoveProjectUserPermissionBody" } } ], + "tags": [ + "Permissions" + ] + } + }, + "/v1/projects/{projectId}/vm": { + "post": { + "summary": "Create virtual machine", + "operationId": "CreateVM", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/CreateVMResponse" } }, "default": { @@ -3280,120 +3289,36 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vm": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Create virtual machine", - "operationId": "CreateVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "required": [ - "vmId", - "bootDiskImageId" - ], - "properties": { - "bootDisk": { - "$ref": "#/definitions/Disk" - }, - "bootDiskImageId": { - "type": "string" - }, - "cpuModel": { - "type": "string" - }, - "customSshKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "dataCenterId": { - "type": "string" - }, - "gpuModel": { - "type": "string" - }, - "gpus": { - "type": "integer", - "format": "int32" - }, - "machineType": { - "type": "string" - }, - "maxPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "memoryGib": { - "type": "integer", - "format": "int32" - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "nics": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/CreateVMRequest.NIC" - } - }, - "password": { - "type": "string" - }, - "securityGroupIds": { - "type": "array", - "title": "ignored if any nics are provided", - "items": { - "type": "string" - } - }, - "sshKeySource": { - "$ref": "#/definitions/SshKeySource" - }, - "startScript": { - "type": "string" - }, - "storageDiskIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "vcpus": { - "type": "integer", - "format": "int32" - }, - "vmId": { - "type": "string" - } - } + "$ref": "#/definitions/CreateVMBody" } } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vm/{id}/expire-time": { + "post": { + "operationId": "UpdateVMExpireTime", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/CreateVMResponse" + "$ref": "#/definitions/UpdateVMExpireTimeResponse" } }, "default": { @@ -3402,49 +3327,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vm/{id}/metadata": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Update VM metadata", - "operationId": "UpdateVMMetadata", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "body", "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "merge": { - "type": "boolean" - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } + "$ref": "#/definitions/UpdateVMExpireTimeBody" } } - ], + ] + } + }, + "/v1/projects/{projectId}/vm/{id}/metadata": { + "post": { + "summary": "Update VM metadata", + "operationId": "UpdateVMMetadata", "responses": { "200": { "description": "A successful response.", @@ -3458,35 +3369,38 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vm/{id}/security-group/attach": { - "patch": { - "tags": [ - "Virtual Machines" - ], - "summary": "Attach security group to VM", - "operationId": "AttachSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "name": "securityGroupId", - "in": "query" + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateVMMetadataBody" + } } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vm/{id}/security-group/attach": { + "patch": { + "summary": "Attach security group to VM", + "operationId": "AttachSecurityGroup", "responses": { "200": { "description": "A successful response.", @@ -3500,35 +3414,36 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vm/{id}/security-group/detach": { - "patch": { - "tags": [ - "Virtual Machines" - ], - "summary": "Attach security group to VM", - "operationId": "DetachSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "securityGroupId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vm/{id}/security-group/detach": { + "patch": { + "summary": "Attach security group to VM", + "operationId": "DetachSecurityGroup", "responses": { "200": { "description": "A successful response.", @@ -3542,29 +3457,36 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "List", - "operationId": "ListVMs", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "name": "networkId", - "in": "query" + "name": "id", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "securityGroupId", + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms": { + "get": { + "summary": "List", + "operationId": "ListVMs", "responses": { "200": { "description": "A successful response.", @@ -3578,32 +3500,32 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "Get", - "operationId": "GetVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", - "name": "id", - "in": "path", - "required": true + "name": "networkId", + "in": "query", + "required": false, + "type": "string" } ], - "responses": { - "200": { + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}": { + "get": { + "summary": "Get", + "operationId": "GetVM", + "responses": { + "200": { "description": "A successful response.", "schema": { "$ref": "#/definitions/GetVMResponse" @@ -3615,40 +3537,78 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Virtual Machines" + ] } }, "/v1/projects/{projectId}/vms/{id}/connect": { "get": { - "tags": [ - "Virtual Machines" - ], "summary": "Connect via VNC", "operationId": "ConnectVM", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ConnectVMResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "connectionId", - "in": "query" + "in": "query", + "required": false, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/disks": { + "get": { + "summary": "List disks attached to VM", + "operationId": "ListVMDisks", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ConnectVMResponse" + "$ref": "#/definitions/ListVMDisksResponse" } }, "default": { @@ -3657,35 +3617,33 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/disks": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "List disks attached to VM", - "operationId": "ListVMDisks", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + }, + "patch": { + "summary": "Resize a VM's disk", + "operationId": "ResizeVMDisk", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListVMDisksResponse" + "$ref": "#/definitions/ResizeVMDiskResponse" } }, "default": { @@ -3694,44 +3652,48 @@ "$ref": "#/definitions/Status" } } - } - }, - "patch": { - "tags": [ - "Virtual Machines" - ], - "summary": "Resize a VM's disk", - "operationId": "ResizeVMDisk", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "diskId", - "in": "query" + "in": "query", + "required": false, + "type": "string" }, { - "type": "integer", - "format": "int32", "name": "sizeGib", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/monitor": { + "get": { + "summary": "Monitor", + "operationId": "MonitorVM", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ResizeVMDiskResponse" + "$ref": "#/definitions/MonitorVMResponse" } }, "default": { @@ -3740,35 +3702,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/monitor": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "Monitor", - "operationId": "MonitorVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/reboot": { + "post": { + "summary": "Reboot", + "operationId": "RebootVM", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/MonitorVMResponse" + "$ref": "#/definitions/RebootVMResponse" } }, "default": { @@ -3777,35 +3739,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/reboot": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Reboot", - "operationId": "RebootVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/resize": { + "post": { + "summary": "Resize vCPU and memory of VM", + "operationId": "ResizeVM", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/RebootVMResponse" + "$ref": "#/definitions/ResizeVMResponse" } }, "default": { @@ -3814,47 +3776,49 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/resize": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Resize vCPU and memory of VM", - "operationId": "ResizeVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "integer", - "format": "int64", "name": "vcpus", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int64" }, { - "type": "integer", - "format": "int64", "name": "memoryGib", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int64" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/start": { + "post": { + "summary": "Start", + "operationId": "StartVM", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ResizeVMResponse" + "$ref": "#/definitions/StartVMResponse" } }, "default": { @@ -3863,35 +3827,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/start": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Start", - "operationId": "StartVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/stop": { + "post": { + "summary": "Stop", + "operationId": "StopVM", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/StartVMResponse" + "$ref": "#/definitions/StopVMResponse" } }, "default": { @@ -3900,35 +3864,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/stop": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Stop", - "operationId": "StopVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/StopVMResponse" + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{projectId}/vms/{id}/terminate": { + "post": { + "summary": "Terminate", + "operationId": "TerminateVM", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/TerminateVMResponse" } }, "default": { @@ -3937,35 +3901,35 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{projectId}/vms/{id}/terminate": { - "post": { - "tags": [ - "Virtual Machines" - ], - "summary": "Terminate", - "operationId": "TerminateVM", + }, "parameters": [ { - "type": "string", "name": "projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/projects/{securityGroup.projectId}/networks/security-groups": { + "post": { + "summary": "Create security group", + "operationId": "CreateSecurityGroup", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/TerminateVMResponse" + "$ref": "#/definitions/CreateSecurityGroupResponse" } }, "default": { @@ -3974,22 +3938,13 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{securityGroup.projectId}/networks/security-groups": { - "post": { - "tags": [ - "Networks" - ], - "summary": "Create security group", - "operationId": "CreateSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "securityGroup.projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "securityGroup", @@ -3997,18 +3952,14 @@ "required": true, "schema": { "type": "object", - "required": [ - "dataCenterId", - "id" - ], "properties": { "dataCenterId": { "type": "string" }, - "description": { + "id": { "type": "string" }, - "id": { + "description": { "type": "string" }, "rules": { @@ -4018,15 +3969,28 @@ "$ref": "#/definitions/Rule" } } - } + }, + "required": [ + "dataCenterId", + "id" + ] } } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/projects/{securityGroup.projectId}/networks/security-groups/{securityGroup.id}": { + "patch": { + "summary": "Update security group", + "operationId": "UpdateSecurityGroup", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/CreateSecurityGroupResponse" + "$ref": "#/definitions/UpdateSecurityGroupResponse" } }, "default": { @@ -4035,28 +3999,19 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/projects/{securityGroup.projectId}/networks/security-groups/{securityGroup.id}": { - "patch": { - "tags": [ - "Networks" - ], - "summary": "Update security group", - "operationId": "UpdateSecurityGroup", + }, "parameters": [ { - "type": "string", "name": "securityGroup.projectId", "in": "path", - "required": true + "required": true, + "type": "string" }, { - "type": "string", "name": "securityGroup.id", "in": "path", - "required": true + "required": true, + "type": "string" }, { "name": "securityGroup", @@ -4064,9 +4019,6 @@ "required": true, "schema": { "type": "object", - "required": [ - "dataCenterId" - ], "properties": { "dataCenterId": { "type": "string" @@ -4081,15 +4033,27 @@ "$ref": "#/definitions/Rule" } } - } + }, + "required": [ + "dataCenterId" + ] } } ], + "tags": [ + "Networks" + ] + } + }, + "/v1/regions": { + "get": { + "summary": "Regions", + "operationId": "ListRegions", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/UpdateSecurityGroupResponse" + "$ref": "#/definitions/ListRegionsResponse" } }, "default": { @@ -4098,21 +4062,20 @@ "$ref": "#/definitions/Status" } } - } + }, + "tags": [ + "Search" + ] } }, - "/v1/regions": { + "/v1/resources/search": { "get": { - "tags": [ - "Search" - ], - "summary": "Regions", - "operationId": "ListRegions", + "operationId": "SearchResources", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListRegionsResponse" + "$ref": "#/definitions/SearchResourcesResponse" } }, "default": { @@ -4121,35 +4084,63 @@ "$ref": "#/definitions/Status" } } - } + }, + "parameters": [ + { + "name": "query", + "in": "query", + "required": true, + "type": "string" + } + ] } }, "/v1/ssh-keys": { "get": { - "tags": [ - "SSH keys" - ], "summary": "List", "operationId": "ListSshKeys", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListSshKeysResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "parameters": [ { - "type": "integer", - "format": "int32", "name": "pageNumber", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" }, { - "type": "integer", - "format": "int32", "name": "pageSize", - "in": "query" + "in": "query", + "required": false, + "type": "integer", + "format": "int32" } ], + "tags": [ + "SSH keys" + ] + }, + "post": { + "summary": "Create", + "operationId": "CreateSshKey", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListSshKeysResponse" + "$ref": "#/definitions/SshKey" } }, "default": { @@ -4158,14 +4149,7 @@ "$ref": "#/definitions/Status" } } - } - }, - "post": { - "tags": [ - "SSH keys" - ], - "summary": "Create", - "operationId": "CreateSshKey", + }, "parameters": [ { "name": "sshKey", @@ -4176,6 +4160,15 @@ } } ], + "tags": [ + "SSH keys" + ] + } + }, + "/v1/ssh-keys/{id}": { + "get": { + "summary": "Get", + "operationId": "GetSshKey", "responses": { "200": { "description": "A successful response.", @@ -4189,29 +4182,28 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/ssh-keys/{id}": { - "get": { - "tags": [ - "SSH keys" - ], - "summary": "Get", - "operationId": "GetSshKey", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "SSH keys" + ] + }, + "delete": { + "summary": "Delete", + "operationId": "DeleteSshKey", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/SshKey" + "type": "object", + "properties": {} } }, "default": { @@ -4220,27 +4212,29 @@ "$ref": "#/definitions/Status" } } - } - }, - "delete": { - "tags": [ - "SSH keys" - ], - "summary": "Delete", - "operationId": "DeleteSshKey", + }, "parameters": [ { - "type": "string", "name": "id", "in": "path", - "required": true + "required": true, + "type": "string" } ], + "tags": [ + "SSH keys" + ] + } + }, + "/v1/vms/data-centers": { + "get": { + "summary": "List data centers", + "operationId": "ListVMDataCenters", "responses": { "200": { "description": "A successful response.", "schema": { - "type": "object" + "$ref": "#/definitions/ListVMDataCentersResponse" } }, "default": { @@ -4249,37 +4243,39 @@ "$ref": "#/definitions/Status" } } - } - } - }, - "/v1/vms/data-centers": { - "get": { - "tags": [ - "Virtual Machines" - ], - "summary": "List data centers", - "operationId": "ListVMDataCenters", + }, "parameters": [ { + "name": "regionId", + "in": "query", + "required": false, "type": "array", "items": { "type": "string" }, - "collectionFormat": "multi", - "name": "regionId", - "in": "query" + "collectionFormat": "multi" }, { - "type": "boolean", "name": "renewableEnergy", - "in": "query" + "in": "query", + "required": false, + "type": "boolean" } ], + "tags": [ + "Virtual Machines" + ] + } + }, + "/v1/vms/gpu-models": { + "get": { + "summary": "List GPU models", + "operationId": "ListVMGpuModels", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/ListVMDataCentersResponse" + "$ref": "#/definitions/ListVMGpuModelsResponse" } }, "default": { @@ -4288,107 +4284,37 @@ "$ref": "#/definitions/Status" } } - } + }, + "tags": [ + "Virtual Machines" + ] } }, - "/v1/vms/machine-types": { + "/v1/vms/machine-types-2": { "get": { + "summary": "List machine types v2", + "operationId": "ListVMMachineTypes2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/ListVMMachineTypes2Response" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/Status" + } + } + }, "tags": [ "Virtual Machines" - ], - "summary": "List machine types", - "operationId": "ListVMMachineTypes", - "parameters": [ - { - "type": "string", - "name": "cpuModel", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "gpu", - "in": "query" - }, - { - "type": "string", - "name": "gpuModel", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "memoryGib", - "in": "query", - "required": true - }, - { - "type": "string", - "name": "orderBy", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "pageNumber", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "pageSize", - "in": "query" - }, - { - "type": "string", - "name": "regionId", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "storageGib", - "in": "query" - }, - { - "type": "integer", - "format": "int32", - "name": "vcpu", - "in": "query", - "required": true - }, - { - "type": "string", - "name": "dataCenterId", - "in": "query" - }, - { - "type": "boolean", - "name": "publicIpv4", - "in": "query" - } - ], - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/ListVMMachineTypesResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/Status" - } - } - } + ] } }, "/v1/vms/public-images": { "get": { - "tags": [ - "Virtual Machines" - ], "summary": "List public VM images", "operationId": "ListPublicVMImages", "responses": { @@ -4404,30 +4330,95 @@ "$ref": "#/definitions/Status" } } - } + }, + "tags": [ + "Virtual Machines" + ] } } }, "definitions": { - "Any": { + "ActivateBody": { "type": "object", "properties": { - "@type": { + "dataCenterId": { "type": "string" } + } + }, + "AddBillingAccountUserPermissionBody": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "dataCenterId": { + "type": "string" + }, + "userEmail": { + "type": "string" + }, + "role": { + "$ref": "#/definitions/Role" + } + }, + "required": [ + "userEmail", + "role" + ] + }, + "AddDataCenterUserPermissionBody": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "billingAccountId": { + "type": "string" + }, + "userEmail": { + "type": "string" + }, + "role": { + "$ref": "#/definitions/Role" + } + }, + "required": [ + "userEmail", + "role" + ] + }, + "AddProjectUserPermissionBody": { + "type": "object", + "properties": { + "dataCenterId": { + "type": "string" + }, + "billingAccountId": { + "type": "string" + }, + "userEmail": { + "type": "string" + }, + "role": { + "$ref": "#/definitions/Role" + } }, - "additionalProperties": false + "required": [ + "userEmail", + "role" + ] }, "ApiKey": { "type": "object", "properties": { - "createTime": { + "id": { "type": "string", - "format": "date-time", "readOnly": true }, - "id": { + "createTime": { "type": "string", + "format": "date-time", "readOnly": true }, "key": { @@ -4445,11 +4436,7 @@ "BillingAccount": { "type": "object", "properties": { - "billingThreshold": { - "$ref": "#/definitions/Decimal", - "readOnly": true - }, - "createBy": { + "id": { "type": "string", "readOnly": true }, @@ -4458,58 +4445,83 @@ "format": "date-time", "readOnly": true }, - "demandEnabled": { - "type": "boolean", - "readOnly": true - }, "displayName": { "type": "string" }, - "id": { + "stripeRef": { + "type": "string" + }, + "createBy": { + "type": "string", + "readOnly": true + }, + "monthlySpend": { "type": "string", "readOnly": true }, + "hourlySpendRate": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "taxId": { + "$ref": "#/definitions/TaxId" + }, "invoiceTime": { "type": "string", "format": "date-time", "readOnly": true }, - "monthlySpend": { - "type": "string" + "billingThreshold": { + "$ref": "#/definitions/Decimal", + "readOnly": true }, - "stripeRef": { - "type": "string" + "monthlySpendLimit": { + "$ref": "#/definitions/Decimal", + "readOnly": true }, - "supplyEnabled": { - "type": "boolean", + "hourlySpendLimit": { + "$ref": "#/definitions/Decimal", "readOnly": true }, - "taxIds": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/TaxId" - } + "nextInvoiceTotal": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "creditBalance": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "creditBalanceRecharge": { + "$ref": "#/definitions/CreditBalanceRecharge" + }, + "billingAddress": { + "$ref": "#/definitions/BillingAddress" + }, + "state": { + "$ref": "#/definitions/BillingAccountState" + }, + "paymentTerms": { + "$ref": "#/definitions/PaymentTerms" } } }, "BillingAccountPaymentMethod": { "type": "object", "properties": { - "card": { - "$ref": "#/definitions/PaymentMethodCard" - }, "id": { "type": "string" }, - "isDefault": { - "type": "boolean" + "type": { + "type": "string" + }, + "card": { + "$ref": "#/definitions/PaymentMethodCard" }, "paypal": { "$ref": "#/definitions/PaymentMethodPaypal" }, - "type": { - "type": "string" + "isDefault": { + "type": "boolean" } } }, @@ -4525,41 +4537,61 @@ } } }, - "BillingAccountSetupIntent": { + "BillingAccountProject": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "resourceCount": { + "type": "integer", + "format": "int32" + } + }, "required": [ "id", - "clientSecret" - ], + "resourceCount" + ] + }, + "BillingAccountResult": { + "type": "object", "properties": { - "clientSecret": { + "id": { "type": "string" }, - "id": { + "displayName": { "type": "string" + }, + "createTime": { + "type": "string", + "format": "date-time" } } }, - "BillingAccountSpendRow": { + "BillingAccountSetupIntent": { "type": "object", - "required": [ - "projectId", - "description", - "quantity", - "unit", - "unitAmount", - "amount" - ], "properties": { - "amount": { - "$ref": "#/definitions/Decimal" - }, - "description": { + "id": { "type": "string" }, + "clientSecret": { + "type": "string" + } + }, + "required": [ + "id", + "clientSecret" + ] + }, + "BillingAccountSpendRow": { + "type": "object", + "properties": { "projectId": { "type": "string" }, + "description": { + "type": "string" + }, "quantity": { "type": "number", "format": "float" @@ -4569,51 +4601,115 @@ }, "unitAmount": { "$ref": "#/definitions/Decimal" + }, + "amount": { + "$ref": "#/definitions/Decimal" } - } + }, + "required": [ + "projectId", + "description", + "quantity", + "unit", + "unitAmount", + "amount" + ] }, - "Cluster": { + "BillingAccountState": { + "type": "string", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_ACTIVE", + "STATE_SUSPENDED_ABUSE", + "STATE_SUSPENDED_PAYMENT" + ], + "default": "STATE_UNSPECIFIED" + }, + "BillingAddress": { "type": "object", - "required": [ - "machineType", - "cpuModel", - "vcpuPerCpuThread", - "vcpuPriceHr", - "memoryGibPriceHr", - "gpuModel", - "gpuModelPciTypes", - "gpuPriceHr", - "minVcpuPerMemoryGib", - "maxVcpuPerMemoryGib", - "minVcpuPerGpu", - "maxVcpuPerGpu", - "createTime", - "updateTime", - "hostCount", - "hostProblemCount", - "vmCount", - "vcpuFree", - "vcpuUsed", - "memoryGibFree", - "memoryGibUsed", - "gpuFree", - "gpuUsed" - ], "properties": { - "cpuModel": { + "name": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "city": { + "type": "string" + }, + "line1": { "type": "string" }, + "line2": { + "type": "string" + }, + "state": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "country": { + "type": "string" + } + } + }, + "Charge": { + "type": "object", + "properties": { + "amount": { + "$ref": "#/definitions/Decimal" + }, "createTime": { "type": "string", "format": "date-time" }, - "gpuFree": { + "paid": { + "type": "boolean" + }, + "refunded": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "failureCode": { + "type": "string" + } + }, + "required": [ + "amount", + "createTime", + "paid", + "refunded", + "status" + ] + }, + "Cluster": { + "type": "object", + "properties": { + "machineType": { + "type": "string" + }, + "cpuModel": { + "type": "string" + }, + "vcpuPerCpuThread": { "type": "integer", "format": "int32" }, + "vcpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "memoryGibPriceHr": { + "$ref": "#/definitions/Decimal" + }, "gpuModel": { "type": "string" }, + "gpuModelId": { + "type": "string" + }, "gpuModelPciTypes": { "type": "array", "items": { @@ -4623,22 +4719,7 @@ "gpuPriceHr": { "$ref": "#/definitions/Decimal" }, - "gpuUsed": { - "type": "integer", - "format": "int32" - }, - "hostCount": { - "type": "integer", - "format": "int32" - }, - "hostProblemCount": { - "type": "integer", - "format": "int32" - }, - "machineType": { - "type": "string" - }, - "maxVcpuPerGpu": { + "minVcpuPerMemoryGib": { "type": "number", "format": "double" }, @@ -4646,56 +4727,98 @@ "type": "number", "format": "double" }, - "memoryGibFree": { - "type": "integer", - "format": "int32" - }, - "memoryGibPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "memoryGibUsed": { - "type": "integer", - "format": "int32" - }, "minVcpuPerGpu": { "type": "number", "format": "double" }, - "minVcpuPerMemoryGib": { + "maxVcpuPerGpu": { "type": "number", "format": "double" }, + "createTime": { + "type": "string", + "format": "date-time" + }, "updateTime": { "type": "string", "format": "date-time" }, - "vcpuFree": { + "hostCount": { "type": "integer", "format": "int32" }, - "vcpuPerCpuThread": { + "hostProblemCount": { "type": "integer", "format": "int32" }, - "vcpuPriceHr": { - "$ref": "#/definitions/Decimal" + "vmCount": { + "type": "integer", + "format": "int32" + }, + "vcpuFree": { + "type": "integer", + "format": "int32" }, "vcpuUsed": { "type": "integer", "format": "int32" }, - "vmCount": { + "memoryGibFree": { + "type": "integer", + "format": "int32" + }, + "memoryGibUsed": { + "type": "integer", + "format": "int32" + }, + "gpuFree": { + "type": "integer", + "format": "int32" + }, + "gpuUsed": { "type": "integer", "format": "int32" + }, + "minVcpu": { + "type": "number", + "format": "double" + }, + "minMemoryGib": { + "type": "number", + "format": "double" } - } + }, + "required": [ + "machineType", + "cpuModel", + "vcpuPerCpuThread", + "vcpuPriceHr", + "memoryGibPriceHr", + "gpuModel", + "gpuModelId", + "gpuModelPciTypes", + "gpuPriceHr", + "minVcpuPerMemoryGib", + "maxVcpuPerMemoryGib", + "minVcpuPerGpu", + "maxVcpuPerGpu", + "createTime", + "updateTime", + "hostCount", + "hostProblemCount", + "vmCount", + "vcpuFree", + "vcpuUsed", + "memoryGibFree", + "memoryGibUsed", + "gpuFree", + "gpuUsed", + "minVcpu", + "minMemoryGib" + ] }, "ConnectVMResponse": { "type": "object", - "required": [ - "connectUrl", - "token" - ], "properties": { "connectUrl": { "type": "string" @@ -4703,118 +4826,288 @@ "token": { "type": "string" } - } + }, + "required": [ + "connectUrl", + "token" + ] }, "CountHostsResponse": { "type": "object", - "required": [ - "count" - ], "properties": { "count": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "count" + ] }, "CountVMsResponse": { "type": "object", - "required": [ - "count" - ], "properties": { "count": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "count" + ] }, - "CpuModelCategory": { + "CpuTopology": { "type": "object", - "required": [ - "name", - "minPriceHr", - "countVmAvailable" - ], "properties": { - "countVmAvailable": { + "sockets": { "type": "integer", "format": "int32" }, - "minPriceHr": { - "$ref": "#/definitions/Decimal" + "cores": { + "type": "integer", + "format": "int32" }, - "name": { - "type": "string" + "threads": { + "type": "integer", + "format": "int32" } } }, - "CreateBillingAccountRequest": { + "CreateBillingAccountCreditPaymentResponse": { "type": "object", + "properties": { + "paymentIntent": { + "$ref": "#/definitions/PaymentIntent" + } + }, "required": [ - "displayName", - "invoiceName", - "email" - ], + "paymentIntent" + ] + }, + "CreateBillingAccountRequest": { + "type": "object", "properties": { "displayName": { "type": "string" }, - "email": { + "invoiceName": { "type": "string" }, - "invoiceName": { + "email": { "type": "string" }, + "taxId": { + "$ref": "#/definitions/TaxId" + }, "referral": { "type": "string" }, - "taxIds": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/TaxId" - } + "billingAddress": { + "$ref": "#/definitions/BillingAddress" } - } + }, + "required": [ + "displayName", + "email" + ] }, - "CreateDiskSnapshotResponse": { - "type": "object" + "CreateDiskSnapshotBody": { + "type": "object", + "properties": { + "snapshotId": { + "type": "string" + }, + "vmId": { + "type": "string" + } + }, + "required": [ + "snapshotId", + "vmId" + ] }, - "CreateNetworkResponse": { + "CreateDiskSnapshotResponse": { "type": "object" }, - "CreatePrivateVMImageResponse": { + "CreateNetworkBody": { "type": "object", "properties": { - "image": { - "$ref": "#/definitions/v1.PrivateImage" - } - } - }, + "dataCenterId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "cidrPrefix": { + "type": "string" + }, + "vrouterSize": { + "$ref": "#/definitions/v1.VRouterSize" + } + }, + "required": [ + "dataCenterId", + "id", + "cidrPrefix" + ] + }, + "CreateNetworkResponse": { + "type": "object" + }, + "CreateObjectStorageUserBody": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "CreatePrivateVMImageResponse": { + "type": "object", + "properties": { + "image": { + "$ref": "#/definitions/PrivateImage" + } + } + }, "CreateSecurityGroupResponse": { "type": "object", - "required": [ - "securityGroup" - ], "properties": { "securityGroup": { "$ref": "#/definitions/SecurityGroup" } + }, + "required": [ + "securityGroup" + ] + }, + "CreateStorageDiskBody": { + "type": "object", + "properties": { + "dataCenterId": { + "type": "string" + }, + "disk": { + "$ref": "#/definitions/Disk" + } } }, "CreateStorageDiskResponse": { "type": "object" }, - "CreateVMRequest.NIC": { + "CreateVMBody": { "type": "object", "properties": { - "assignPublicIp": { + "dataCenterId": { + "type": "string" + }, + "machineType": { + "type": "string" + }, + "vmId": { + "type": "string" + }, + "startScript": { + "type": "string" + }, + "sshKeySource": { + "$ref": "#/definitions/SshKeySource" + }, + "customSshKeys": { + "type": "array", + "items": { + "type": "string" + } + }, + "password": { + "type": "string" + }, + "bootDisk": { + "$ref": "#/definitions/Disk" + }, + "bootDiskImageId": { + "type": "string" + }, + "vcpus": { + "type": "integer", + "format": "int32" + }, + "memoryGib": { + "type": "integer", + "format": "int32" + }, + "gpus": { + "type": "integer", + "format": "int32" + }, + "cpuModel": { + "type": "string" + }, + "gpuModel": { + "type": "string" + }, + "gpuModelId": { + "type": "string" + }, + "nics": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/CreateVMRequest.NIC" + } + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "title": "ignored if any nics are provided" + }, + "storageDiskIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "topology": { + "$ref": "#/definitions/CpuTopology" + }, + "validateOnly": { "type": "boolean" }, + "expireTime": { + "type": "string", + "format": "date-time" + }, + "ttl": { + "type": "string" + } + }, + "required": [ + "dataCenterId", + "machineType", + "vmId", + "bootDiskImageId", + "vcpus", + "memoryGib", + "gpus" + ] + }, + "CreateVMRequest.NIC": { + "type": "object", + "properties": { "networkId": { "type": "string" }, + "assignPublicIp": { + "type": "boolean" + }, "securityGroupIds": { "type": "array", "items": { @@ -4825,9 +5118,6 @@ }, "CreateVMResponse": { "type": "object", - "required": [ - "id" - ], "properties": { "id": { "type": "string" @@ -4835,115 +5125,141 @@ "vm": { "$ref": "#/definitions/VM" } - } + }, + "required": [ + "id" + ] }, - "DataCenter": { + "CreditBalanceRecharge": { "type": "object", - "required": [ - "id", - "oneFrontendId" - ], "properties": { - "createBy": { - "type": "string", - "readOnly": true - }, - "id": { - "type": "string" + "low": { + "$ref": "#/definitions/Decimal" }, - "lngLat": { - "$ref": "#/definitions/Point" + "high": { + "$ref": "#/definitions/Decimal" }, - "oneFrontendId": { - "type": "string" + "autoRecharge": { + "type": "boolean" }, - "regionId": { + "transaction": { + "$ref": "#/definitions/Transaction", + "readOnly": true + } + }, + "required": [ + "low", + "high", + "autoRecharge" + ] + }, + "CreditBalanceTransaction": { + "type": "object", + "properties": { + "id": { "type": "string" }, - "renewableEnergy": { - "type": "boolean" + "amount": { + "$ref": "#/definitions/Decimal" }, - "supplierName": { + "description": { "type": "string" + }, + "createTime": { + "type": "string", + "format": "date-time" } - } - }, - "DataCenterCategory": { - "type": "object", + }, "required": [ "id", - "minPriceHr", - "countVmAvailable", - "renewableEnergy" - ], + "amount", + "description", + "createTime" + ] + }, + "DataCenterMachineType": { + "type": "object", "properties": { - "countVmAvailable": { + "machineType": { + "type": "string" + }, + "countClusters": { "type": "integer", "format": "int32" }, - "id": { - "type": "string" + "countHosts": { + "type": "integer", + "format": "int32" }, - "minPriceHr": { - "$ref": "#/definitions/Decimal" + "countHostsActive": { + "type": "integer", + "format": "int32" }, - "renewableEnergy": { - "type": "boolean" + "countHostsInactive": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "machineType", + "countClusters", + "countHosts", + "countHostsActive", + "countHostsInactive" + ] }, "DataCenterRevenueResource": { "type": "object", - "required": [ - "resourceType", - "resourceId", - "quantity", - "unit", - "revenueUsd" - ], "properties": { - "quantity": { - "$ref": "#/definitions/Decimal" - }, - "resourceId": { + "resourceType": { "type": "string" }, - "resourceType": { + "resourceId": { "type": "string" }, - "revenueUsd": { + "quantity": { "$ref": "#/definitions/Decimal" }, "unit": { "type": "string" + }, + "revenueUsd": { + "$ref": "#/definitions/Decimal" } - } + }, + "required": [ + "resourceType", + "resourceId", + "quantity", + "unit", + "revenueUsd" + ] }, "DataCenterTimeRevenue": { "type": "object", - "required": [ - "time", - "revenueUsd" - ], "properties": { - "revenueUsd": { - "$ref": "#/definitions/Decimal" - }, "time": { "type": "string", "format": "date-time" + }, + "revenueUsd": { + "$ref": "#/definitions/Decimal" } - } - }, - "Decimal": { - "description": "A representation of a decimal value, such as 2.5. Clients may convert values\ninto language-native decimal formats, such as Java's [BigDecimal][] or\nPython's [decimal.Decimal][].\n\n[BigDecimal]:\nhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html\n[decimal.Decimal]: https://docs.python.org/3/library/decimal.html", + }, + "required": [ + "time", + "revenueUsd" + ] + }, + "Decimal": { "type": "object", "properties": { "value": { - "description": "The decimal value, as a string.\n\nThe string representation consists of an optional sign, `+` (`U+002B`)\nor `-` (`U+002D`), followed by a sequence of zero or more decimal digits\n(\"the integer\"), optionally followed by a fraction, optionally followed\nby an exponent.\n\nThe fraction consists of a decimal point followed by zero or more decimal\ndigits. The string must contain at least one digit in either the integer\nor the fraction. The number formed by the sign, the integer and the\nfraction is referred to as the significand.\n\nThe exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)\nfollowed by one or more decimal digits.\n\nServices **should** normalize decimal values before storing them by:\n\n - Removing an explicitly-provided `+` sign (`+2.5` -\u003e `2.5`).\n - Replacing a zero-length integer value with `0` (`.5` -\u003e `0.5`).\n - Coercing the exponent character to lower-case (`2.5E8` -\u003e `2.5e8`).\n - Removing an explicitly-provided zero exponent (`2.5e0` -\u003e `2.5`).\n\nServices **may** perform additional normalization based on its own needs\nand the internal decimal implementation selected, such as shifting the\ndecimal point and exponent value together (example: `2.5e-1` \u003c-\u003e `0.25`).\nAdditionally, services **may** preserve trailing zeroes in the fraction\nto indicate increased precision, but are not required to do so.\n\nNote that only the `.` character is supported to divide the integer\nand the fraction; `,` **should not** be supported regardless of locale.\nAdditionally, thousand separators **should not** be supported. If a\nservice does support them, values **must** be normalized.\n\nThe ENBF grammar is:\n\n DecimalString =\n [Sign] Significand [Exponent];\n\n Sign = '+' | '-';\n\n Significand =\n Digits ['.'] [Digits] | [Digits] '.' Digits;\n\n Exponent = ('e' | 'E') [Sign] Digits;\n\n Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };\n\nServices **should** clearly document the range of supported values, the\nmaximum supported precision (total number of digits), and, if applicable,\nthe scale (number of digits after the decimal point), as well as how it\nbehaves when receiving out-of-bounds values.\n\nServices **may** choose to accept values passed as input even when the\nvalue has a higher precision or scale than the service supports, and\n**should** round the value to fit the supported scale. Alternatively, the\nservice **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)\nif precision would be lost.\n\nServices **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in\ngRPC) if the service receives a value outside of the supported range.", - "type": "string" + "type": "string", + "description": "The decimal value, as a string.\n\nThe string representation consists of an optional sign, `+` (`U+002B`)\nor `-` (`U+002D`), followed by a sequence of zero or more decimal digits\n(\"the integer\"), optionally followed by a fraction, optionally followed\nby an exponent.\n\nThe fraction consists of a decimal point followed by zero or more decimal\ndigits. The string must contain at least one digit in either the integer\nor the fraction. The number formed by the sign, the integer and the\nfraction is referred to as the significand.\n\nThe exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`)\nfollowed by one or more decimal digits.\n\nServices **should** normalize decimal values before storing them by:\n\n - Removing an explicitly-provided `+` sign (`+2.5` -\u003e `2.5`).\n - Replacing a zero-length integer value with `0` (`.5` -\u003e `0.5`).\n - Coercing the exponent character to lower-case (`2.5E8` -\u003e `2.5e8`).\n - Removing an explicitly-provided zero exponent (`2.5e0` -\u003e `2.5`).\n\nServices **may** perform additional normalization based on its own needs\nand the internal decimal implementation selected, such as shifting the\ndecimal point and exponent value together (example: `2.5e-1` \u003c-\u003e `0.25`).\nAdditionally, services **may** preserve trailing zeroes in the fraction\nto indicate increased precision, but are not required to do so.\n\nNote that only the `.` character is supported to divide the integer\nand the fraction; `,` **should not** be supported regardless of locale.\nAdditionally, thousand separators **should not** be supported. If a\nservice does support them, values **must** be normalized.\n\nThe ENBF grammar is:\n\n DecimalString =\n [Sign] Significand [Exponent];\n\n Sign = '+' | '-';\n\n Significand =\n Digits ['.'] [Digits] | [Digits] '.' Digits;\n\n Exponent = ('e' | 'E') [Sign] Digits;\n\n Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' };\n\nServices **should** clearly document the range of supported values, the\nmaximum supported precision (total number of digits), and, if applicable,\nthe scale (number of digits after the decimal point), as well as how it\nbehaves when receiving out-of-bounds values.\n\nServices **may** choose to accept values passed as input even when the\nvalue has a higher precision or scale than the service supports, and\n**should** round the value to fit the supported scale. Alternatively, the\nservice **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC)\nif precision would be lost.\n\nServices **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in\ngRPC) if the service receives a value outside of the supported range." } - } + }, + "description": "A representation of a decimal value, such as 2.5. Clients may convert values\ninto language-native decimal formats, such as Java's [BigDecimal][] or\nPython's [decimal.Decimal][].\n\n[BigDecimal]:\nhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html\n[decimal.Decimal]: https://docs.python.org/3/library/decimal.html" }, "DeleteDiskSnapshotResponse": { "type": "object" @@ -4974,68 +5290,101 @@ }, "Disk": { "type": "object", - "required": [ - "id", - "sizeGib" - ], "properties": { - "createTime": { + "id": { + "type": "string" + }, + "projectId": { "type": "string", - "format": "date-time", "readOnly": true }, "dataCenterId": { "type": "string", "readOnly": true }, - "diskState": { - "$ref": "#/definitions/DiskState", + "vmId": { + "type": "string", "readOnly": true }, + "sizeGib": { + "type": "integer", + "format": "int32" + }, + "storageClass": { + "$ref": "#/definitions/Disk.StorageClass" + }, "diskType": { "$ref": "#/definitions/DiskType", "readOnly": true }, - "id": { - "type": "string" - }, - "privateImageId": { + "publicImageId": { "type": "string", "readOnly": true }, - "projectId": { + "privateImageId": { "type": "string", "readOnly": true }, - "publicImageId": { + "createTime": { "type": "string", + "format": "date-time", "readOnly": true }, - "sizeGib": { - "type": "integer", - "format": "int32" - }, - "storageClass": { - "$ref": "#/definitions/Disk.StorageClass" - }, - "vmId": { - "type": "string", + "diskState": { + "$ref": "#/definitions/DiskState", "readOnly": true } - } + }, + "required": [ + "id", + "sizeGib" + ] }, "Disk.StorageClass": { "type": "string", - "default": "STORAGE_CLASS_UNKNOWN", "enum": [ "STORAGE_CLASS_UNKNOWN", "STORAGE_CLASS_LOCAL", "STORAGE_CLASS_NETWORK" - ] + ], + "default": "STORAGE_CLASS_UNKNOWN" + }, + "DiskResult": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "dataCenterId": { + "type": "string" + }, + "sizeGib": { + "type": "integer", + "format": "int32" + }, + "publicImageId": { + "type": "string" + }, + "privateImageId": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/DiskType" + }, + "state": { + "$ref": "#/definitions/DiskState" + }, + "createTime": { + "type": "string", + "format": "date-time" + } + } }, "DiskState": { "type": "string", - "default": "DISK_STATE_INIT", "enum": [ "DISK_STATE_INIT", "DISK_STATE_READY", @@ -5045,49 +5394,46 @@ "DISK_STATE_ERROR", "DISK_STATE_CLONE", "DISK_STATE_DELETE" - ] + ], + "default": "DISK_STATE_INIT" }, "DiskStoragePriceHr": { "type": "object", "properties": { + "storageClass": { + "$ref": "#/definitions/VMDataCenter.StorageClass" + }, "diskGibPriceHr": { "$ref": "#/definitions/Decimal" }, "snapshotGibPriceHr": { "$ref": "#/definitions/Decimal" - }, - "storageClass": { - "$ref": "#/definitions/VMDataCenter.StorageClass" } } }, "DiskType": { "type": "string", - "default": "DISK_TYPE_UNKNOWN", "enum": [ "DISK_TYPE_UNKNOWN", "DISK_TYPE_BOOT", "DISK_TYPE_STORAGE" - ] + ], + "default": "DISK_TYPE_UNKNOWN" }, "GenerateApiKeyRequest": { "type": "object", - "required": [ - "apikeyId" - ], "properties": { "apikeyId": { - "description": "The identifier to use for the api key, which will become the final component of\nthe api key's resource name.\nThis value should be 4-63 characters, and valid characters\nare /[a-z][0-9]-/.", - "type": "string" + "type": "string", + "description": "The identifier to use for the api key, which will become the final component of\nthe api key's resource name.\nThis value should be 4-63 characters, and valid characters\nare /[a-z][0-9]-/." } - } + }, + "required": [ + "apikeyId" + ] }, "GetBillingAccountDetailsResponse": { "type": "object", - "required": [ - "billingAccount", - "stripeCustomer" - ], "properties": { "billingAccount": { "$ref": "#/definitions/BillingAccount" @@ -5095,13 +5441,14 @@ "stripeCustomer": { "$ref": "#/definitions/StripeCustomer" } - } + }, + "required": [ + "billingAccount", + "stripeCustomer" + ] }, "GetBillingAccountSpendDetailsResponse": { "type": "object", - "required": [ - "spend" - ], "properties": { "spend": { "type": "array", @@ -5110,65 +5457,38 @@ "$ref": "#/definitions/BillingAccountSpendRow" } } - } - }, - "GetBillingAccountStripeInvoicesResponse": { - "type": "object", + }, "required": [ - "invoices", - "hasMore" - ], - "properties": { - "hasMore": { - "type": "boolean" - }, - "invoices": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Invoice" - } - } - } + "spend" + ] }, "GetDataCenterLiveUtilizationResponse": { "type": "object", - "required": [ - "utilization", - "vcpuUsed", - "vcpuFree", - "vcpuTotal", - "cpuUtilization", - "memoryGibUsed", - "memoryGibFree", - "memoryGibTotal", - "memoryUtilization", - "gpuUsed", - "gpuFree", - "gpuTotal", - "gpuUtilization" - ], "properties": { - "cpuUtilization": { + "utilization": { "type": "number", "format": "float" }, - "gpuFree": { + "vcpuUsed": { "type": "integer", "format": "int32" }, - "gpuTotal": { + "vcpuFree": { "type": "integer", "format": "int32" }, - "gpuUsed": { + "vcpuTotal": { "type": "integer", "format": "int32" }, - "gpuUtilization": { + "cpuUtilization": { "type": "number", "format": "float" }, + "memoryGibUsed": { + "type": "integer", + "format": "int32" + }, "memoryGibFree": { "type": "integer", "format": "int32" @@ -5177,37 +5497,85 @@ "type": "integer", "format": "int32" }, - "memoryGibUsed": { + "memoryUtilization": { + "type": "number", + "format": "float" + }, + "gpuUsed": { "type": "integer", "format": "int32" }, - "memoryUtilization": { + "gpuFree": { + "type": "integer", + "format": "int32" + }, + "gpuTotal": { + "type": "integer", + "format": "int32" + }, + "gpuUtilization": { "type": "number", "format": "float" }, - "utilization": { + "ipv4Used": { + "type": "integer", + "format": "int32" + }, + "ipv4Free": { + "type": "integer", + "format": "int32" + }, + "ipv4Total": { + "type": "integer", + "format": "int32" + }, + "ipv4Utilization": { "type": "number", "format": "float" }, - "vcpuFree": { + "storageGibUsed": { "type": "integer", "format": "int32" }, - "vcpuTotal": { + "storageGibFree": { "type": "integer", "format": "int32" }, - "vcpuUsed": { + "storageGibTotal": { "type": "integer", "format": "int32" + }, + "storageUtilization": { + "type": "number", + "format": "float" } - } + }, + "required": [ + "utilization", + "vcpuUsed", + "vcpuFree", + "vcpuTotal", + "cpuUtilization", + "memoryGibUsed", + "memoryGibFree", + "memoryGibTotal", + "memoryUtilization", + "gpuUsed", + "gpuFree", + "gpuTotal", + "gpuUtilization", + "ipv4Used", + "ipv4Free", + "ipv4Total", + "ipv4Utilization", + "storageGibUsed", + "storageGibFree", + "storageGibTotal", + "storageUtilization" + ] }, "GetDataCenterRevenueByResourceResponse": { "type": "object", - "required": [ - "resources" - ], "properties": { "resources": { "type": "array", @@ -5216,13 +5584,13 @@ "$ref": "#/definitions/DataCenterRevenueResource" } } - } + }, + "required": [ + "resources" + ] }, "GetDataCenterRevenueTimeSeriesResponse": { "type": "object", - "required": [ - "timeRevenue" - ], "properties": { "timeRevenue": { "type": "array", @@ -5231,7 +5599,10 @@ "$ref": "#/definitions/DataCenterTimeRevenue" } } - } + }, + "required": [ + "timeRevenue" + ] }, "GetDiskResponse": { "type": "object", @@ -5250,51 +5621,36 @@ }, "GetMachineTypeLiveUtilizationResponse": { "type": "object", - "required": [ - "utilization", - "vcpuUsed", - "vcpuFree", - "vcpuTotal", - "cpuUtilization", - "memoryGibUsed", - "memoryGibFree", - "memoryGibTotal", - "memoryUtilization", - "gpuUsed", - "gpuFree", - "gpuTotal", - "gpuUtilization" - ], "properties": { - "cpuUtilization": { + "utilization": { "type": "number", "format": "float" }, - "gpuFree": { + "vcpuUsed": { "type": "integer", "format": "int32" }, - "gpuTotal": { + "vcpuFree": { "type": "integer", "format": "int32" }, - "gpuUsed": { + "vcpuTotal": { "type": "integer", "format": "int32" }, - "gpuUtilization": { + "cpuUtilization": { "type": "number", "format": "float" }, - "memoryGibFree": { + "memoryGibUsed": { "type": "integer", "format": "int32" }, - "memoryGibTotal": { + "memoryGibFree": { "type": "integer", "format": "int32" }, - "memoryGibUsed": { + "memoryGibTotal": { "type": "integer", "format": "int32" }, @@ -5302,62 +5658,47 @@ "type": "number", "format": "float" }, - "utilization": { - "type": "number", - "format": "float" - }, - "vcpuFree": { + "gpuUsed": { "type": "integer", "format": "int32" }, - "vcpuTotal": { + "gpuFree": { "type": "integer", "format": "int32" }, - "vcpuUsed": { + "gpuTotal": { "type": "integer", "format": "int32" + }, + "gpuUtilization": { + "type": "number", + "format": "float" } - } + }, + "required": [ + "utilization", + "vcpuUsed", + "vcpuFree", + "vcpuTotal", + "cpuUtilization", + "memoryGibUsed", + "memoryGibFree", + "memoryGibTotal", + "memoryUtilization", + "gpuUsed", + "gpuFree", + "gpuTotal", + "gpuUtilization" + ] }, "GetMachineTypeResponse": { "type": "object", - "required": [ - "dataCenterId", - "machineType", - "cpuModels", - "gpuModels", - "minVcpuPriceHr", - "maxVcpuPriceHr", - "minMemoryGibPriceHr", - "maxMemoryGibPriceHr", - "minGpuPriceHr", - "maxGpuPriceHr", - "minVcpuPerMemoryGib", - "maxVcpuPerMemoryGib", - "minVcpuPerGpu", - "maxVcpuPerGpu", - "countClusters", - "countHosts", - "countHostsActive", - "countHostsInactive" - ], "properties": { - "countClusters": { - "type": "integer", - "format": "int32" - }, - "countHosts": { - "type": "integer", - "format": "int32" - }, - "countHostsActive": { - "type": "integer", - "format": "int32" + "dataCenterId": { + "type": "string" }, - "countHostsInactive": { - "type": "integer", - "format": "int32" + "machineType": { + "type": "string" }, "cpuModels": { "type": "array", @@ -5365,25 +5706,31 @@ "type": "string" } }, - "dataCenterId": { - "type": "string" - }, "gpuModels": { "type": "array", "items": { "type": "string" } }, - "machineType": { - "type": "string" + "minVcpuPriceHr": { + "$ref": "#/definitions/Decimal" }, - "maxGpuPriceHr": { + "maxVcpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "minMemoryGibPriceHr": { "$ref": "#/definitions/Decimal" }, "maxMemoryGibPriceHr": { "$ref": "#/definitions/Decimal" }, - "maxVcpuPerGpu": { + "minGpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "maxGpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "minVcpuPerMemoryGib": { "type": "number", "format": "double" }, @@ -5391,55 +5738,89 @@ "type": "number", "format": "double" }, - "maxVcpuPriceHr": { - "$ref": "#/definitions/Decimal" + "minVcpuPerGpu": { + "type": "number", + "format": "double" }, - "minGpuPriceHr": { - "$ref": "#/definitions/Decimal" + "maxVcpuPerGpu": { + "type": "number", + "format": "double" }, - "minMemoryGibPriceHr": { - "$ref": "#/definitions/Decimal" + "countClusters": { + "type": "integer", + "format": "int32" }, - "minVcpuPerGpu": { + "countHosts": { + "type": "integer", + "format": "int32" + }, + "countHostsActive": { + "type": "integer", + "format": "int32" + }, + "countHostsInactive": { + "type": "integer", + "format": "int32" + }, + "minVcpu": { "type": "number", "format": "double" }, - "minVcpuPerMemoryGib": { + "minMemoryGib": { "type": "number", "format": "double" - }, - "minVcpuPriceHr": { - "$ref": "#/definitions/Decimal" } - } + }, + "required": [ + "dataCenterId", + "machineType", + "cpuModels", + "gpuModels", + "minVcpuPriceHr", + "maxVcpuPriceHr", + "minMemoryGibPriceHr", + "maxMemoryGibPriceHr", + "minGpuPriceHr", + "maxGpuPriceHr", + "minVcpuPerMemoryGib", + "maxVcpuPerMemoryGib", + "minVcpuPerGpu", + "maxVcpuPerGpu", + "countClusters", + "countHosts", + "countHostsActive", + "countHostsInactive", + "minVcpu", + "minMemoryGib" + ] }, "GetNetworkResponse": { "type": "object", - "required": [ - "network" - ], "properties": { "network": { "$ref": "#/definitions/Network" } - } + }, + "required": [ + "network" + ] }, "GetObjectStorageSessionKeyResponse": { "type": "object", "properties": { - "accessKey": { + "sessionName": { "type": "string" }, - "endpoint": { + "accessKey": { "type": "string" }, "secretKey": { "type": "string" }, - "sessionName": { + "sessionToken": { "type": "string" }, - "sessionToken": { + "endpoint": { "type": "string" } } @@ -5448,116 +5829,143 @@ "type": "object", "properties": { "image": { - "$ref": "#/definitions/v1.PrivateImage" + "$ref": "#/definitions/PrivateImage" } } }, - "GetSecurityGroupResponse": { + "GetResponse": { "type": "object", + "properties": { + "task": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Task" + } + } + }, "required": [ - "securityGroup" - ], + "task" + ] + }, + "GetSecurityGroupResponse": { + "type": "object", "properties": { "securityGroup": { "$ref": "#/definitions/SecurityGroup" } - } + }, + "required": [ + "securityGroup" + ] }, "GetVMResponse": { "type": "object", - "required": [ - "VM" - ], "properties": { "VM": { "$ref": "#/definitions/VM" + }, + "vcpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "totalVcpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "memoryGibPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "totalMemoryPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "gpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "totalGpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "storageGibPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "totalStoragePriceHr": { + "$ref": "#/definitions/Decimal" + }, + "ipv4PriceHr": { + "$ref": "#/definitions/Decimal" + }, + "totalPriceHr": { + "$ref": "#/definitions/Decimal" } - } + }, + "required": [ + "VM", + "vcpuPriceHr", + "totalVcpuPriceHr", + "memoryGibPriceHr", + "totalMemoryPriceHr", + "gpuPriceHr", + "totalGpuPriceHr", + "storageGibPriceHr", + "totalStoragePriceHr", + "ipv4PriceHr", + "totalPriceHr" + ] }, - "GpuModelCategory": { + "GpuModel": { "type": "object", - "required": [ - "name", - "minPriceHr", - "countVmAvailable" - ], "properties": { - "countVmAvailable": { - "type": "integer", - "format": "int32" + "id": { + "type": "string" }, - "minPriceHr": { - "$ref": "#/definitions/Decimal" + "vendorName": { + "type": "string" }, - "name": { + "modelName": { "type": "string" + }, + "memoryGib": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "id", + "vendorName", + "modelName", + "memoryGib" + ] }, "Host": { "type": "object", - "required": [ - "machineType", - "cpuModel", - "vcpuPerCpuThread", - "gpuModel", - "createTime", - "updateTime", - "vmCount", - "vcpuFree", - "vcpuUsed", - "memoryGibFree", - "memoryGibUsed", - "gpuFree", - "gpuUsed", - "online", - "name" - ], "properties": { - "cpuModel": { + "machineType": { "type": "string" }, - "createTime": { - "type": "string", - "format": "date-time" - }, - "gpuFree": { - "type": "integer", - "format": "int32" - }, - "gpuModel": { + "cpuModel": { "type": "string" }, - "gpuUsed": { + "vcpuPerCpuThread": { "type": "integer", "format": "int32" }, - "machineType": { + "gpuModel": { "type": "string" }, - "memoryGibFree": { - "type": "integer", - "format": "int32" - }, - "memoryGibUsed": { - "type": "integer", - "format": "int32" - }, - "name": { + "gpuModelId": { "type": "string" }, - "online": { - "type": "boolean" + "createTime": { + "type": "string", + "format": "date-time" }, "updateTime": { "type": "string", "format": "date-time" }, - "vcpuFree": { + "vmCount": { "type": "integer", "format": "int32" }, - "vcpuPerCpuThread": { + "vcpuFree": { "type": "integer", "format": "int32" }, @@ -5565,144 +5973,137 @@ "type": "integer", "format": "int32" }, - "vmCount": { + "memoryGibFree": { "type": "integer", "format": "int32" - } - } - }, - "HostConfigCategory": { - "type": "object", - "required": [ - "id", - "cpuModel", - "gpuModel", - "dataCenterId", - "vcpuPriceHr", - "totalVcpuPriceHr", - "memoryGibPriceHr", - "totalMemoryPriceHr", - "gpuPriceHr", - "totalGpuPriceHr", - "storageGibPriceHr", - "totalStoragePriceHr", - "totalPriceHr", - "countVmAvailable", - "machineType", - "renewableEnergy", - "ipv4PriceHr" - ], - "properties": { - "countVmAvailable": { + }, + "memoryGibUsed": { "type": "integer", "format": "int32" }, - "cpuModel": { - "type": "string" - }, - "dataCenterId": { - "type": "string" - }, - "gpuModel": { - "type": "string" - }, - "gpuPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "id": { - "type": "string" - }, - "ipv4PriceHr": { - "$ref": "#/definitions/Decimal" - }, - "machineType": { - "type": "string" + "gpuFree": { + "type": "integer", + "format": "int32" }, - "memoryGibPriceHr": { - "$ref": "#/definitions/Decimal" + "gpuUsed": { + "type": "integer", + "format": "int32" }, - "renewableEnergy": { + "online": { "type": "boolean" }, - "storageGibPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "totalGpuPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "totalMemoryPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "totalPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "totalStoragePriceHr": { - "$ref": "#/definitions/Decimal" - }, - "totalVcpuPriceHr": { - "$ref": "#/definitions/Decimal" - }, - "vcpuPriceHr": { - "$ref": "#/definitions/Decimal" + "name": { + "type": "string" } - } + }, + "required": [ + "machineType", + "cpuModel", + "vcpuPerCpuThread", + "gpuModel", + "gpuModelId", + "createTime", + "updateTime", + "vmCount", + "vcpuFree", + "vcpuUsed", + "memoryGibFree", + "memoryGibUsed", + "gpuFree", + "gpuUsed", + "online", + "name" + ] }, "IdentityVerificationSession": { "type": "object", "properties": { - "clientSecret": { + "id": { "type": "string" }, - "id": { + "clientSecret": { "type": "string" } } }, "Image": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "platform": { + "type": "string" + }, + "sizeGib": { + "type": "integer", + "format": "int32" + }, + "installedPackages": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Package" + } + } + }, "required": [ "id", "name", "description", "displayName", "platform", - "sizeGib" - ], + "sizeGib", + "installedPackages" + ] + }, + "ImageResult": { + "type": "object", "properties": { - "description": { - "type": "string" - }, - "displayName": { + "projectId": { "type": "string" }, "id": { "type": "string" }, - "name": { - "type": "string" - }, - "platform": { + "dataCenterId": { "type": "string" }, "sizeGib": { "type": "integer", "format": "int32" + }, + "createTime": { + "type": "string", + "format": "date-time" } } }, "Interval": { "type": "string", - "default": "INTERVAL_UNKNOWN", "enum": [ "INTERVAL_UNKNOWN", "INTERVAL_DAY", "INTERVAL_WEEK", "INTERVAL_MONTH" - ] + ], + "default": "INTERVAL_UNKNOWN" }, "Invoice": { "type": "object", "properties": { + "id": { + "type": "string" + }, "amountDue": { "type": "string", "format": "int64" @@ -5715,89 +6116,189 @@ "type": "string", "format": "int64" }, - "autoAdvance": { - "type": "boolean" - }, - "billingReason": { - "type": "string" - }, "created": { "type": "string", "format": "int64" }, + "description": { + "type": "string" + }, "currency": { "type": "string" }, - "description": { + "hostedInvoiceUrl": { + "type": "string" + }, + "status": { "type": "string" }, "dueDate": { "type": "string", "format": "int64" }, - "hostedInvoiceUrl": { - "type": "string" + "paidDate": { + "type": "string", + "format": "int64" }, - "id": { + "billingReason": { "type": "string" }, + "autoAdvance": { + "type": "boolean" + }, + "periodStart": { + "type": "string", + "format": "int64" + }, + "periodEnd": { + "type": "string", + "format": "int64" + }, "number": { "type": "string" }, - "paidDate": { + "subtotalExcludingTax": { "type": "string", "format": "int64" }, - "periodEnd": { + "subtotal": { "type": "string", "format": "int64" }, - "periodStart": { + "totalExcludingTax": { "type": "string", "format": "int64" }, - "status": { - "type": "string" + "tax": { + "type": "string", + "format": "int64" + }, + "total": { + "type": "string", + "format": "int64" } } }, - "ListApiKeysResponse": { + "LastPaymentError": { "type": "object", - "required": [ - "apiKeys", - "totalCount", - "pageNumber", - "pageSize" - ], "properties": { - "apiKeys": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/ApiKey" - } + "code": { + "type": "string" }, - "pageNumber": { + "declineCode": { + "type": "string" + } + }, + "required": [ + "code", + "declineCode" + ] + }, + "ListApiKeysResponse": { + "type": "object", + "properties": { + "apiKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/ApiKey" + } + }, + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "apiKeys", + "totalCount", + "pageNumber", + "pageSize" + ] }, - "ListBillingAccountsResponse": { + "ListBillingAccountCreditBalanceTransactionsResponse": { + "type": "object", + "properties": { + "creditBalanceTransactions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/CreditBalanceTransaction" + } + }, + "hasMore": { + "type": "boolean" + } + }, + "required": [ + "creditBalanceTransactions", + "hasMore" + ] + }, + "ListBillingAccountInvoicesResponse": { "type": "object", + "properties": { + "invoices": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Invoice" + } + }, + "hasMore": { + "type": "boolean" + } + }, "required": [ - "billingAccounts", - "pageToken", - "pageSize" - ], + "invoices", + "hasMore" + ] + }, + "ListBillingAccountProjectsResponse": { + "type": "object", + "properties": { + "projects": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/BillingAccountProject" + }, + "title": "string page_token = 2 [(google.api.field_behavior) = REQUIRED];\n int32 page_size = 3 [(google.api.field_behavior) = REQUIRED];" + } + }, + "required": [ + "projects" + ] + }, + "ListBillingAccountTransactionsResponse": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Transaction" + } + }, + "hasMore": { + "type": "boolean" + } + }, + "required": [ + "transactions", + "hasMore" + ] + }, + "ListBillingAccountsResponse": { + "type": "object", "properties": { "billingAccounts": { "type": "array", @@ -5806,20 +6307,22 @@ "$ref": "#/definitions/BillingAccount" } }, + "pageToken": { + "type": "string" + }, "pageSize": { "type": "integer", "format": "int32" - }, - "pageToken": { - "type": "string" } - } + }, + "required": [ + "billingAccounts", + "pageToken", + "pageSize" + ] }, "ListClustersResponse": { "type": "object", - "required": [ - "clusters" - ], "properties": { "clusters": { "type": "array", @@ -5828,37 +6331,52 @@ "$ref": "#/definitions/Cluster" } } - } + }, + "required": [ + "clusters" + ] }, - "ListDataCentersResponse": { + "ListDataCenterMachineTypePricesResponse": { "type": "object", + "properties": { + "prices": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/MachineTypePrice" + } + } + }, "required": [ - "dataCenters", - "pageToken", - "pageSize" - ], + "prices" + ] + }, + "ListDataCentersResponse": { + "type": "object", "properties": { "dataCenters": { "type": "array", "items": { "type": "object", - "$ref": "#/definitions/DataCenter" + "$ref": "#/definitions/v1.DataCenter" } }, + "pageToken": { + "type": "string" + }, "pageSize": { "type": "integer", "format": "int32" - }, - "pageToken": { - "type": "string" } - } + }, + "required": [ + "dataCenters", + "pageToken", + "pageSize" + ] }, "ListDiskSnapshotsResponse": { "type": "object", - "required": [ - "snapshots" - ], "properties": { "snapshots": { "type": "array", @@ -5867,15 +6385,13 @@ "$ref": "#/definitions/Snapshot" } } - } + }, + "required": [ + "snapshots" + ] }, "ListDisksResponse": { "type": "object", - "required": [ - "totalCount", - "pageNumber", - "pageSize" - ], "properties": { "disks": { "type": "array", @@ -5884,25 +6400,27 @@ "$ref": "#/definitions/Disk" } }, - "pageNumber": { + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "totalCount", + "pageNumber", + "pageSize" + ] }, "ListHostsResponse": { "type": "object", - "required": [ - "hosts" - ], "properties": { "hosts": { "type": "array", @@ -5911,31 +6429,28 @@ "$ref": "#/definitions/Host" } } - } + }, + "required": [ + "hosts" + ] }, "ListMachineTypesResponse": { "type": "object", - "required": [ - "machineTypes" - ], "properties": { "machineTypes": { "type": "array", "items": { "type": "object", - "$ref": "#/definitions/MachineType" + "$ref": "#/definitions/DataCenterMachineType" } } - } + }, + "required": [ + "machineTypes" + ] }, "ListNetworksResponse": { "type": "object", - "required": [ - "networks", - "totalCount", - "pageNumber", - "pageSize" - ], "properties": { "networks": { "type": "array", @@ -5944,28 +6459,28 @@ "$ref": "#/definitions/Network" } }, - "pageNumber": { + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" } - } - }, - "ListObjectStorageBucketsResponse": { - "type": "object", + }, "required": [ - "buckets", + "networks", "totalCount", "pageNumber", "pageSize" - ], + ] + }, + "ListObjectStorageBucketsResponse": { + "type": "object", "properties": { "buckets": { "type": "array", @@ -5974,28 +6489,28 @@ "$ref": "#/definitions/ObjectStorageBucket" } }, - "pageNumber": { + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" } - } - }, - "ListObjectStorageKeysResponse": { - "type": "object", + }, "required": [ - "keys", + "buckets", "totalCount", "pageNumber", "pageSize" - ], + ] + }, + "ListObjectStorageKeysResponse": { + "type": "object", "properties": { "keys": { "type": "array", @@ -6004,55 +6519,58 @@ "$ref": "#/definitions/ObjectStorageKey" } }, - "pageNumber": { + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" } - } - }, - "ListObjectStorageUsersResponse": { - "type": "object", + }, "required": [ - "users", + "keys", "totalCount", "pageNumber", "pageSize" - ], + ] + }, + "ListObjectStorageUsersResponse": { + "type": "object", "properties": { - "pageNumber": { + "users": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/ObjectStorageUser" + } + }, + "totalCount": { "type": "integer", "format": "int32" }, - "pageSize": { + "pageNumber": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageSize": { "type": "integer", "format": "int32" - }, - "users": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/ObjectStorageUser" - } } - } + }, + "required": [ + "users", + "totalCount", + "pageNumber", + "pageSize" + ] }, - "ListOutstandingStripeInvoicesResponse": { + "ListOutstandingInvoicesResponse": { "type": "object", - "required": [ - "invoices" - ], "properties": { "invoices": { "type": "array", @@ -6061,63 +6579,42 @@ "$ref": "#/definitions/Invoice" } } - } + }, + "required": [ + "invoices" + ] }, "ListPrivateVMImagesResponse": { "type": "object", - "required": [ - "totalCount", - "pageNumber", - "pageSize" - ], "properties": { "images": { "type": "array", "items": { "type": "object", - "$ref": "#/definitions/ListPrivateVMImagesResponse.PrivateImage" + "$ref": "#/definitions/PrivateImage" } }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "pageSize": { + "totalCount": { "type": "integer", "format": "int32" }, - "totalCount": { + "pageNumber": { "type": "integer", "format": "int32" - } - } - }, - "ListPrivateVMImagesResponse.PrivateImage": { - "type": "object", - "properties": { - "dataCenterId": { - "type": "string" - }, - "description": { - "type": "string" - }, - "id": { - "type": "string" - }, - "projectId": { - "type": "string" }, - "sizeGib": { + "pageSize": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "totalCount", + "pageNumber", + "pageSize" + ] }, "ListProjectSshKeysResponse": { "type": "object", - "required": [ - "sshKeys" - ], "properties": { "sshKeys": { "type": "array", @@ -6126,37 +6623,37 @@ "$ref": "#/definitions/SshKey" } } - } + }, + "required": [ + "sshKeys" + ] }, "ListProjectsResponse": { "type": "object", - "required": [ - "projects", - "pageToken", - "pageSize" - ], "properties": { - "pageSize": { - "type": "integer", - "format": "int32" - }, - "pageToken": { - "type": "string" - }, "projects": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/Project" } + }, + "pageToken": { + "type": "string" + }, + "pageSize": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "projects", + "pageToken", + "pageSize" + ] }, "ListPublicVMImagesResponse": { "type": "object", - "required": [ - "images" - ], "properties": { "images": { "type": "array", @@ -6165,13 +6662,13 @@ "$ref": "#/definitions/Image" } } - } + }, + "required": [ + "images" + ] }, "ListRegionsResponse": { "type": "object", - "required": [ - "regions" - ], "properties": { "regions": { "type": "array", @@ -6180,25 +6677,14 @@ "$ref": "#/definitions/Region" } } - } + }, + "required": [ + "regions" + ] }, "ListSecurityGroupsResponse": { "type": "object", - "required": [ - "securityGroups", - "totalCount", - "pageNumber", - "pageSize" - ], "properties": { - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "pageSize": { - "type": "integer", - "format": "int32" - }, "securityGroups": { "type": "array", "items": { @@ -6209,18 +6695,7 @@ "totalCount": { "type": "integer", "format": "int32" - } - } - }, - "ListSshKeysResponse": { - "type": "object", - "required": [ - "sshKeys", - "totalCount", - "pageNumber", - "pageSize" - ], - "properties": { + }, "pageNumber": { "type": "integer", "format": "int32" @@ -6228,7 +6703,18 @@ "pageSize": { "type": "integer", "format": "int32" - }, + } + }, + "required": [ + "securityGroups", + "totalCount", + "pageNumber", + "pageSize" + ] + }, + "ListSshKeysResponse": { + "type": "object", + "properties": { "sshKeys": { "type": "array", "items": { @@ -6239,18 +6725,27 @@ "totalCount": { "type": "integer", "format": "int32" + }, + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "sshKeys", + "totalCount", + "pageNumber", + "pageSize" + ] }, "ListUserPermissionsResponse": { "type": "object", - "required": [ - "projectPermissions", - "dataCenterPermissions", - "billingAccountPermissions" - ], "properties": { - "billingAccountPermissions": { + "projectPermissions": { "type": "array", "items": { "type": "object", @@ -6264,20 +6759,22 @@ "$ref": "#/definitions/UserPermission" } }, - "projectPermissions": { + "billingAccountPermissions": { "type": "array", "items": { "type": "object", "$ref": "#/definitions/UserPermission" } } - } + }, + "required": [ + "projectPermissions", + "dataCenterPermissions", + "billingAccountPermissions" + ] }, "ListVMDataCentersResponse": { "type": "object", - "required": [ - "dataCenters" - ], "properties": { "dataCenters": { "type": "array", @@ -6286,7 +6783,10 @@ "$ref": "#/definitions/VMDataCenter" } } - } + }, + "required": [ + "dataCenters" + ] }, "ListVMDisksResponse": { "type": "object", @@ -6300,730 +6800,1173 @@ } } }, - "ListVMMachineTypesRequest": { + "ListVMGpuModelsResponse": { + "type": "object", + "properties": { + "gpuModels": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/GpuModel" + } + } + } + }, + "ListVMMachineTypes2Response": { "type": "object", + "properties": { + "machineTypes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/VMMachineType" + } + } + }, "required": [ - "memoryGib", - "vcpu" - ], + "machineTypes" + ] + }, + "ListVMsResponse": { + "type": "object", "properties": { - "cpuModel": { + "VMs": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/VM" + } + } + } + }, + "MachineTypePrice": { + "type": "object", + "properties": { + "uid": { "type": "string" }, - "dataCenterId": { + "machineType": { "type": "string" }, - "gpu": { - "type": "integer", - "format": "int32" - }, - "gpuModel": { + "commitmentTerm": { "type": "string" }, - "memoryGib": { - "type": "integer", - "format": "int32" + "gpuPriceHr": { + "$ref": "#/definitions/Decimal" }, - "orderBy": { - "type": "string" + "vcpuPriceHr": { + "$ref": "#/definitions/Decimal" }, - "pageNumber": { - "type": "integer", - "format": "int32" + "memoryGibPriceHr": { + "$ref": "#/definitions/Decimal" }, - "pageSize": { - "type": "integer", - "format": "int32" + "bootDiskGibPriceHr": { + "$ref": "#/definitions/Decimal" }, - "publicIpv4": { - "type": "boolean" + "ipv4PriceHr": { + "$ref": "#/definitions/Decimal" + } + }, + "required": [ + "uid", + "machineType", + "commitmentTerm", + "gpuPriceHr", + "vcpuPriceHr", + "memoryGibPriceHr", + "bootDiskGibPriceHr", + "ipv4PriceHr" + ] + }, + "MonitorVMResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/VMMonitoringItem" + } + } + }, + "required": [ + "items" + ] + }, + "Network": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "regionId": { + "dataCenterId": { "type": "string" }, - "storageGib": { - "type": "integer", - "format": "int32" + "ipRange": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "size": { + "$ref": "#/definitions/v1.VRouterSize" + }, + "priceHr": { + "$ref": "#/definitions/Decimal" + }, + "externalIpAddress": { + "type": "string" + }, + "internalIpAddress": { + "type": "string" + }, + "shortState": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/NetworkState" + }, + "createTime": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "id", + "dataCenterId", + "ipRange", + "gateway", + "size", + "priceHr", + "externalIpAddress", + "internalIpAddress", + "shortState", + "state", + "createTime" + ] + }, + "NetworkPriceHr": { + "type": "object", + "properties": { + "size": { + "$ref": "#/definitions/VMDataCenter.VRouterSize" + }, + "priceHr": { + "$ref": "#/definitions/Decimal" + } + } + }, + "NetworkResult": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "dataCenterId": { + "type": "string" + }, + "ipRange": { + "type": "string" + }, + "gateway": { + "type": "string" + }, + "internalIpAddress": { + "type": "string" + }, + "externalIpAddress": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/NetworkState" + }, + "createTime": { + "type": "string", + "format": "date-time" + } + } + }, + "NetworkState": { + "type": "string", + "enum": [ + "CLONING", + "CREATING_SNAPSHOT", + "DELETED", + "DELETING", + "DELETING_SNAPSHOT", + "FAILED", + "HOTPLUGGING", + "MIGRATING", + "RECREATING", + "REVERTING_SNAPSHOT", + "RESIZING", + "RESIZING_DISK", + "ACTIVE", + "STARTING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "UNKNOWN" + ], + "default": "CLONING" + }, + "ObjectStorageBucket": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "dataCenterId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "objectCount": { + "type": "string", + "format": "int64" + }, + "sizeBytes": { + "type": "string", + "format": "int64" + }, + "billableBytes": { + "type": "string", + "format": "int64" + } + } + }, + "ObjectStorageKey": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "vcpu": { + "accessKey": { + "type": "string" + }, + "secretKey": { + "type": "string" + }, + "createBy": { + "type": "string" + }, + "createTime": { + "type": "string", + "format": "date-time" + } + } + }, + "ObjectStorageUser": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "keyCount": { "type": "integer", "format": "int32" + }, + "createBy": { + "type": "string" + }, + "createTime": { + "type": "string", + "format": "date-time" } } }, - "ListVMMachineTypesResponse": { + "Package": { "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "version": { + "type": "string" + } + }, "required": [ - "request", - "maxVcpu", - "maxMemoryGib", - "maxGpu", - "countVmAvailable", - "cpuModels", - "gpuModels", - "dataCenters", - "hostConfigs" + "name", + "description", + "version" + ] + }, + "PaymentIntent": { + "type": "object", + "properties": { + "clientSecret": { + "type": "string" + } + }, + "required": [ + "clientSecret" + ] + }, + "PaymentMethodCard": { + "type": "object", + "properties": { + "brand": { + "type": "string" + }, + "country": { + "type": "string" + }, + "expMonth": { + "type": "string", + "format": "int64" + }, + "expYear": { + "type": "string", + "format": "int64" + }, + "fingerprint": { + "type": "string" + }, + "last4": { + "type": "string" + } + } + }, + "PaymentMethodPaypal": { + "type": "object", + "properties": { + "payerEmail": { + "type": "string" + }, + "payerId": { + "type": "string" + } + } + }, + "PaymentTerms": { + "type": "string", + "enum": [ + "PAYMENT_TERMS_UNSPECIFIED", + "PAYMENT_TERMS_PREPAID", + "PAYMENT_TERMS_INVOICE" ], + "default": "PAYMENT_TERMS_UNSPECIFIED" + }, + "Point": { + "type": "object", "properties": { - "countVmAvailable": { - "type": "integer", - "format": "int32" + "lat": { + "type": "number", + "format": "double" }, - "cpuModels": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/CpuModelCategory" - } + "lng": { + "type": "number", + "format": "double" + } + } + }, + "PrivateImage": { + "type": "object", + "properties": { + "projectId": { + "type": "string" }, - "dataCenters": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/DataCenterCategory" - } + "id": { + "type": "string" }, - "gpuModels": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/GpuModelCategory" - } + "dataCenterId": { + "type": "string" }, - "hostConfigs": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/HostConfigCategory" - } + "description": { + "type": "string" }, - "maxGpu": { + "sizeGib": { "type": "integer", "format": "int32" + } + } + }, + "Profile": { + "type": "object", + "properties": { + "emailAddress": { + "type": "string" + }, + "firstName": { + "type": "string" }, - "maxMemoryGib": { + "lastName": { + "type": "string" + }, + "picture": { + "type": "string" + } + } + }, + "Project": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "billingAccountId": { + "type": "string" + }, + "resourceCount": { "type": "integer", - "format": "int32" + "format": "int32", + "readOnly": true }, - "maxVcpu": { + "createBy": { + "type": "string", + "readOnly": true + } + }, + "required": [ + "id", + "billingAccountId" + ] + }, + "ProjectResult": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "resourceCount": { "type": "integer", "format": "int32" }, - "request": { - "$ref": "#/definitions/ListVMMachineTypesRequest" + "createTime": { + "type": "string", + "format": "date-time" } } }, - "ListVMsResponse": { + "RebootVMResponse": { + "type": "object" + }, + "Region": { "type": "object", "properties": { - "VMs": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "dataCenters": { "type": "array", "items": { "type": "object", - "$ref": "#/definitions/VM" + "$ref": "#/definitions/Region.DataCenter" } } } }, - "MachineType": { + "Region.DataCenter": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "RemoveBillingAccountPaymentMethodResponse": { "type": "object", + "properties": { + "id": { + "type": "string" + }, + "paymentMethodId": { + "type": "string" + } + }, "required": [ - "machineType", - "countClusters", - "countHosts", - "countHostsActive", - "countHostsInactive" - ], + "id", + "paymentMethodId" + ] + }, + "RemoveBillingAccountUserPermissionBody": { + "type": "object", "properties": { - "countClusters": { - "type": "integer", - "format": "int32" + "projectId": { + "type": "string" }, - "countHosts": { - "type": "integer", - "format": "int32" + "dataCenterId": { + "type": "string" }, - "countHostsActive": { - "type": "integer", - "format": "int32" + "userId": { + "type": "string" }, - "countHostsInactive": { - "type": "integer", - "format": "int32" + "role": { + "$ref": "#/definitions/Role" + } + }, + "required": [ + "userId", + "role" + ] + }, + "RemoveDataCenterUserPermissionBody": { + "type": "object", + "properties": { + "projectId": { + "type": "string" }, - "machineType": { + "billingAccountId": { + "type": "string" + }, + "userId": { "type": "string" + }, + "role": { + "$ref": "#/definitions/Role" } - } + }, + "required": [ + "userId", + "role" + ] }, - "MonitorVMResponse": { + "RemoveProjectUserPermissionBody": { "type": "object", + "properties": { + "dataCenterId": { + "type": "string" + }, + "billingAccountId": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "role": { + "$ref": "#/definitions/Role" + } + }, "required": [ - "items" - ], + "userId", + "role" + ] + }, + "ResizeVMDiskResponse": { + "type": "object" + }, + "ResizeVMResponse": { + "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/VMMonitoringItem" - } + "vm": { + "$ref": "#/definitions/VM" } - } + }, + "required": [ + "vm" + ] }, - "Network": { + "Result": { "type": "object", "properties": { - "activeState": { - "type": "string" - }, - "dataCenterId": { - "type": "string" - }, - "externalIpAddress": { - "type": "string" - }, - "gateway": { + "resourceType": { "type": "string" }, - "id": { + "resourceName": { "type": "string" }, - "initState": { - "type": "string" + "score": { + "type": "number", + "format": "float" }, - "internalIpAddress": { - "type": "string" + "billingAccount": { + "$ref": "#/definitions/BillingAccountResult" }, - "ipRange": { - "type": "string" + "project": { + "$ref": "#/definitions/ProjectResult" }, - "networkState": { - "$ref": "#/definitions/NetworkState" + "virtualMachine": { + "$ref": "#/definitions/VirtualMachineResult" }, - "priceHr": { - "$ref": "#/definitions/Decimal" + "disk": { + "$ref": "#/definitions/DiskResult" }, - "shortState": { - "type": "string" + "image": { + "$ref": "#/definitions/ImageResult" }, - "size": { - "$ref": "#/definitions/VRouterSize" + "network": { + "$ref": "#/definitions/NetworkResult" } } }, - "NetworkPriceHr": { - "type": "object", - "properties": { - "priceHr": { - "$ref": "#/definitions/Decimal" - }, - "size": { - "$ref": "#/definitions/VRouterSize" - } - } + "RevertDiskResponse": { + "type": "object" }, - "NetworkState": { + "Role": { "type": "string", - "default": "CLONING", "enum": [ - "CLONING", - "CREATING_SNAPSHOT", - "DELETED", - "DELETING", - "DELETING_SNAPSHOT", - "FAILED", - "HOTPLUGGING", - "MIGRATING", - "RECREATING", - "REVERTING_SNAPSHOT", - "RESIZING", - "RESIZING_DISK", - "ACTIVE", - "STARTING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "UNKNOWN" - ] + "UNKNOWN", + "OWNER", + "VIEWER", + "EDITOR" + ], + "default": "UNKNOWN" }, - "ObjectStorageBucket": { + "Rule": { "type": "object", "properties": { - "billableBytes": { - "type": "string", - "format": "int64" - }, - "dataCenterId": { + "id": { "type": "string" }, - "endpoint": { - "type": "string" + "protocol": { + "$ref": "#/definitions/Rule.Protocol" }, - "id": { + "ports": { "type": "string" }, - "objectCount": { + "ruleType": { + "$ref": "#/definitions/Rule.RuleType" + }, + "ipRangeCidr": { "type": "string", - "format": "int64" + "title": "single IP or CIDR format range to apply rule to" }, - "projectId": { + "icmpType": { "type": "string" - }, - "sizeBytes": { - "type": "string", - "format": "int64" } } }, - "ObjectStorageKey": { + "Rule.Protocol": { + "type": "string", + "enum": [ + "PROTOCOL_UNKNOWN", + "PROTOCOL_ALL", + "PROTOCOL_TCP", + "PROTOCOL_UDP", + "PROTOCOL_ICMP", + "PROTOCOL_ICMPv6", + "PROTOCOL_IPSEC" + ], + "default": "PROTOCOL_UNKNOWN" + }, + "Rule.RuleType": { + "type": "string", + "enum": [ + "RULE_TYPE_UNKNOWN", + "RULE_TYPE_INBOUND", + "RULE_TYPE_OUTBOUND" + ], + "default": "RULE_TYPE_UNKNOWN" + }, + "SearchResourcesResponse": { "type": "object", "properties": { - "accessKey": { - "type": "string" - }, - "createBy": { - "type": "string" - }, - "createTime": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string" - }, - "secretKey": { - "type": "string" + "results": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Result" + } } } }, - "ObjectStorageUser": { + "SecurityGroup": { "type": "object", "properties": { - "createBy": { + "projectId": { "type": "string" }, - "createTime": { - "type": "string", - "format": "date-time" + "dataCenterId": { + "type": "string" }, "id": { "type": "string" }, - "keyCount": { - "type": "integer", - "format": "int32" + "description": { + "type": "string" + }, + "rules": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/Rule" + } } - } + }, + "required": [ + "dataCenterId", + "id" + ] }, - "PaymentMethodCard": { + "SecurityGroupRule": { "type": "object", "properties": { - "brand": { + "id": { "type": "string" }, - "country": { + "protocol": { + "$ref": "#/definitions/SecurityGroupRule.Protocol" + }, + "ports": { "type": "string" }, - "expMonth": { - "type": "string", - "format": "int64" + "ruleType": { + "$ref": "#/definitions/SecurityGroupRule.RuleType" }, - "expYear": { + "ipRangeCidr": { "type": "string", - "format": "int64" - }, - "fingerprint": { - "type": "string" + "title": "single IP or CIDR format range to apply rule to" }, - "last4": { + "icmpType": { "type": "string" } } }, - "PaymentMethodPaypal": { + "SecurityGroupRule.Protocol": { + "type": "string", + "enum": [ + "PROTOCOL_UNKNOWN", + "PROTOCOL_ALL", + "PROTOCOL_TCP", + "PROTOCOL_UDP", + "PROTOCOL_ICMP", + "PROTOCOL_ICMPv6", + "PROTOCOL_IPSEC" + ], + "default": "PROTOCOL_UNKNOWN" + }, + "SecurityGroupRule.RuleType": { + "type": "string", + "enum": [ + "RULE_TYPE_UNKNOWN", + "RULE_TYPE_INBOUND", + "RULE_TYPE_OUTBOUND" + ], + "default": "RULE_TYPE_UNKNOWN" + }, + "SetBillingAccountDefaultPaymentMethodResponse": { "type": "object", "properties": { - "payerEmail": { + "id": { "type": "string" }, - "payerId": { + "paymentMethodId": { "type": "string" } - } - }, - "Point": { - "type": "object", - "properties": { - "lat": { - "type": "number", - "format": "double" - }, - "lng": { - "type": "number", - "format": "double" - } - } + }, + "required": [ + "id", + "paymentMethodId" + ] }, - "Profile": { + "Snapshot": { "type": "object", "properties": { - "emailAddress": { + "id": { "type": "string" }, - "firstName": { - "type": "string" + "active": { + "type": "boolean" }, - "lastName": { - "type": "string" + "sizeGib": { + "type": "integer", + "format": "int32" }, - "picture": { - "type": "string" + "createTime": { + "type": "string", + "format": "date-time" } } }, - "Project": { + "SshKey": { "type": "object", - "required": [ - "id", - "billingAccountId" - ], "properties": { - "billingAccountId": { + "id": { + "type": "string", + "readOnly": true + }, + "createTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "publicKey": { "type": "string" }, - "createBy": { + "fingerprint": { "type": "string", "readOnly": true }, - "id": { - "type": "string" + "type": { + "type": "string", + "readOnly": true }, - "resourceCount": { - "type": "integer", - "format": "int32", + "comment": { + "type": "string", "readOnly": true } - } + }, + "required": [ + "publicKey" + ] }, - "Protocol": { + "SshKeySource": { "type": "string", - "default": "PROTOCOL_UNKNOWN", "enum": [ - "PROTOCOL_UNKNOWN", - "PROTOCOL_ALL", - "PROTOCOL_TCP", - "PROTOCOL_UDP", - "PROTOCOL_ICMP", - "PROTOCOL_ICMPv6", - "PROTOCOL_IPSEC" - ] + "SSH_KEY_SOURCE_UNKNOWN", + "SSH_KEY_SOURCE_PROJECT", + "SSH_KEY_SOURCE_USER", + "SSH_KEY_SOURCE_NONE" + ], + "default": "SSH_KEY_SOURCE_UNKNOWN" }, - "RebootVMResponse": { + "StartNetworkResponse": { "type": "object" }, - "Region": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } + "StartVMResponse": { + "type": "object" }, - "RemoveBillingAccountPaymentMethodResponse": { + "Status": { "type": "object", - "required": [ - "id", - "paymentMethodId" - ], "properties": { - "id": { - "type": "string" + "code": { + "type": "integer", + "format": "int32" }, - "paymentMethodId": { + "message": { "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobuf.Any" + } } } }, - "ResizeVMDiskResponse": { + "StopNetworkResponse": { "type": "object" }, - "ResizeVMResponse": { - "type": "object", - "required": [ - "vm" - ], - "properties": { - "vm": { - "$ref": "#/definitions/VM" - } - } - }, - "RevertDiskResponse": { + "StopVMResponse": { "type": "object" }, - "Role": { - "type": "string", - "default": "UNKNOWN", - "enum": [ - "UNKNOWN", - "OWNER", - "VIEWER", - "EDITOR" - ] - }, - "Rule": { + "StripeCustomer": { "type": "object", "properties": { - "icmpType": { - "type": "string" - }, "id": { "type": "string" }, - "ipRangeCidr": { - "type": "string", - "title": "single IP or CIDR format range to apply rule to" - }, - "ports": { + "name": { "type": "string" }, - "protocol": { - "$ref": "#/definitions/Protocol" + "email": { + "type": "string" }, - "ruleType": { - "$ref": "#/definitions/RuleType" + "balance": { + "$ref": "#/definitions/Decimal" } } }, - "RuleType": { - "type": "string", - "default": "RULE_TYPE_UNKNOWN", - "enum": [ - "RULE_TYPE_UNKNOWN", - "RULE_TYPE_INBOUND", - "RULE_TYPE_OUTBOUND" - ] + "SyncResponse": { + "type": "object" }, - "SecurityGroup": { + "Task": { "type": "object", - "required": [ - "dataCenterId", - "id" - ], "properties": { - "dataCenterId": { - "type": "string" - }, - "description": { + "taskName": { "type": "string" }, - "id": { - "type": "string" + "percentComplete": { + "type": "integer", + "format": "int32" }, "projectId": { "type": "string" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Rule" - } } } }, - "SecurityGroupRule": { + "TaxId": { "type": "object", "properties": { - "icmpType": { - "type": "string" - }, "id": { - "type": "string" - }, - "ipRangeCidr": { "type": "string", - "title": "single IP or CIDR format range to apply rule to" + "readOnly": true }, - "ports": { + "type": { "type": "string" }, - "protocol": { - "$ref": "#/definitions/Protocol" - }, - "ruleType": { - "$ref": "#/definitions/RuleType" + "value": { + "type": "string" } } }, - "SetBillingAccountDefaultPaymentMethodResponse": { + "TerminateVMResponse": { + "type": "object" + }, + "TrackRequest": { "type": "object", - "required": [ - "id", - "paymentMethodId" - ], "properties": { - "id": { - "type": "string" - }, - "paymentMethodId": { + "clientId": { "type": "string" } } }, - "Snapshot": { + "Transaction": { "type": "object", "properties": { - "active": { - "type": "boolean" + "id": { + "type": "string" + }, + "amount": { + "$ref": "#/definitions/Decimal" + }, + "description": { + "type": "string" }, "createTime": { "type": "string", "format": "date-time" }, - "id": { + "status": { "type": "string" }, - "sizeGib": { - "type": "integer", - "format": "int32" + "succeeded": { + "type": "boolean" + }, + "latestCharge": { + "$ref": "#/definitions/Charge" + }, + "lastPaymentError": { + "$ref": "#/definitions/LastPaymentError" } - } - }, - "SshKey": { - "type": "object", + }, "required": [ - "publicKey" + "id", + "amount", + "description", + "createTime", + "status", + "succeeded", + "latestCharge", + "lastPaymentError" + ] + }, + "Unit": { + "type": "string", + "enum": [ + "UNIT_UNKNOWN", + "UNIT_GIB_HOUR", + "UNIT_HOUR" ], + "default": "UNIT_UNKNOWN" + }, + "UpdateBillingAccountBody": { + "type": "object", "properties": { - "comment": { - "type": "string", - "readOnly": true - }, - "createTime": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "fingerprint": { - "type": "string", - "readOnly": true + "billingAccount": { + "type": "object", + "properties": { + "createTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "displayName": { + "type": "string" + }, + "stripeRef": { + "type": "string" + }, + "createBy": { + "type": "string", + "readOnly": true + }, + "monthlySpend": { + "type": "string", + "readOnly": true + }, + "hourlySpendRate": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "taxId": { + "$ref": "#/definitions/TaxId" + }, + "invoiceTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "billingThreshold": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "monthlySpendLimit": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "hourlySpendLimit": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "nextInvoiceTotal": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "creditBalance": { + "$ref": "#/definitions/Decimal", + "readOnly": true + }, + "creditBalanceRecharge": { + "$ref": "#/definitions/CreditBalanceRecharge" + }, + "billingAddress": { + "$ref": "#/definitions/BillingAddress" + }, + "state": { + "$ref": "#/definitions/BillingAccountState" + }, + "paymentTerms": { + "$ref": "#/definitions/PaymentTerms" + } + } }, - "id": { - "type": "string", - "readOnly": true + "updateMask": { + "type": "string" + } + }, + "required": [ + "updateMask" + ] + }, + "UpdateDataCenterBody": { + "type": "object", + "properties": { + "dataCenter": { + "type": "object", + "properties": { + "regionId": { + "type": "string" + }, + "supplierName": { + "type": "string" + }, + "renewableEnergy": { + "type": "boolean" + }, + "lngLat": { + "$ref": "#/definitions/Point" + }, + "createBy": { + "type": "string", + "readOnly": true + }, + "oneFrontendId": { + "type": "string" + }, + "s3Endpoint": { + "type": "string" + } + } }, - "publicKey": { + "updateMask": { "type": "string" - }, - "type": { - "type": "string", - "readOnly": true } - } - }, - "SshKeySource": { - "type": "string", - "default": "SSH_KEY_SOURCE_UNKNOWN", - "enum": [ - "SSH_KEY_SOURCE_UNKNOWN", - "SSH_KEY_SOURCE_PROJECT", - "SSH_KEY_SOURCE_USER", - "SSH_KEY_SOURCE_NONE" + }, + "required": [ + "oneFrontendId", + "s3Endpoint" ] }, - "StartNetworkResponse": { + "UpdateHostResponse": { "type": "object" }, - "StartVMResponse": { + "UpdateImageResponse": { "type": "object" }, - "Status": { + "UpdateNetResponse": { + "type": "object" + }, + "UpdatePrivateVMImageResponse": { + "type": "object" + }, + "UpdateProjectBody": { "type": "object", "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "details": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/Any" + "project": { + "type": "object", + "properties": { + "billingAccountId": { + "type": "string" + }, + "resourceCount": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "createBy": { + "type": "string", + "readOnly": true + } } }, - "message": { + "updateMask": { "type": "string" } - } - }, - "StopNetworkResponse": { - "type": "object" + }, + "required": [ + "billingAccountId" + ] }, - "StopVMResponse": { - "type": "object" + "UpdateSecurityGroupResponse": { + "type": "object", + "properties": { + "securityGroup": { + "$ref": "#/definitions/SecurityGroup" + } + }, + "required": [ + "securityGroup" + ] }, - "StripeCustomer": { + "UpdateVMExpireTimeBody": { "type": "object", "properties": { - "balance": { - "$ref": "#/definitions/Decimal" - }, - "email": { - "type": "string" - }, - "id": { - "type": "string" + "expireTime": { + "type": "string", + "format": "date-time" }, - "name": { + "ttl": { "type": "string" } } }, - "TaxId": { + "UpdateVMExpireTimeResponse": { "type": "object", "properties": { - "id": { + "expireTime": { "type": "string", - "readOnly": true - }, - "type": { - "type": "string" - }, - "value": { - "type": "string" + "format": "date-time" } } }, - "TerminateVMResponse": { - "type": "object" - }, - "Unit": { - "type": "string", - "default": "UNIT_UNKNOWN", - "enum": [ - "UNIT_UNKNOWN", - "UNIT_GIB_HOUR", - "UNIT_HOUR" - ] - }, - "UpdatePrivateVMImageResponse": { - "type": "object" - }, - "UpdateSecurityGroupResponse": { + "UpdateVMMetadataBody": { "type": "object", - "required": [ - "securityGroup" - ], "properties": { - "securityGroup": { - "$ref": "#/definitions/SecurityGroup" + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "merge": { + "type": "boolean" } } }, @@ -7038,113 +7981,99 @@ } } }, + "UpdateVMResponse": { + "type": "object" + }, "UserPermission": { "type": "object", - "required": [ - "userId", - "userEmail", - "userPicture", - "role", - "permissionRole" - ], "properties": { - "permissionRole": { - "$ref": "#/definitions/Role" - }, - "role": { + "userId": { "type": "string" }, "userEmail": { "type": "string" }, - "userId": { + "userPicture": { "type": "string" }, - "userPicture": { + "role": { "type": "string" + }, + "permissionRole": { + "$ref": "#/definitions/Role" } - } + }, + "required": [ + "userId", + "userEmail", + "userPicture", + "role", + "permissionRole" + ] }, "VM": { "type": "object", "properties": { - "activeState": { - "type": "string" - }, - "bootDisk": { - "$ref": "#/definitions/Disk" - }, - "bootDiskSizeGib": { - "type": "integer", - "format": "int64" + "datacenterId": { + "type": "string", + "readOnly": true }, - "cpuModel": { + "machineType": { "type": "string" }, - "createBy": { + "regionId": { "type": "string", "readOnly": true }, - "datacenterId": { + "regionName": { "type": "string", "readOnly": true }, - "externalIpAddress": { + "id": { "type": "string" }, - "gpuModel": { + "externalIpAddress": { "type": "string" }, - "gpuQuantity": { - "type": "integer", - "format": "int64" - }, - "id": { + "internalIpAddress": { "type": "string" }, - "imageId": { + "publicIpAddress": { "type": "string" }, - "imageName": { - "type": "string" + "memory": { + "type": "integer", + "format": "int64" }, - "initState": { + "cpuModel": { "type": "string" }, - "internalIpAddress": { - "type": "string" + "vcpus": { + "type": "integer", + "format": "int64" }, - "lcmState": { + "gpuModel": { "type": "string" }, - "machineType": { + "gpuModelId": { "type": "string" }, - "memory": { + "gpuQuantity": { "type": "integer", "format": "int64" }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "nics": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/VM.NIC" - } - }, - "oneState": { - "type": "string" + "bootDiskSizeGib": { + "type": "integer", + "format": "int64" }, "priceHr": { "type": "number", "format": "float" }, - "privateImageId": { + "renewableEnergy": { + "type": "boolean" + }, + "imageId": { "type": "string" }, "publicImageId": { @@ -7153,19 +8082,22 @@ "publicImageName": { "type": "string" }, - "publicIpAddress": { + "privateImageId": { "type": "string" }, - "regionId": { - "type": "string", - "readOnly": true + "imageName": { + "type": "string" }, - "regionName": { + "createBy": { "type": "string", "readOnly": true }, - "renewableEnergy": { - "type": "boolean" + "nics": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/VM.NIC" + } }, "rules": { "type": "array", @@ -7183,6 +8115,9 @@ "shortState": { "type": "string" }, + "bootDisk": { + "$ref": "#/definitions/Disk" + }, "storageDisks": { "type": "array", "items": { @@ -7190,18 +8125,33 @@ "$ref": "#/definitions/Disk" } }, - "vcpus": { - "type": "integer", - "format": "int64" + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + } }, - "vmState": { + "state": { "$ref": "#/definitions/VmState" + }, + "createTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "expireTime": { + "type": "string", + "format": "date-time", + "readOnly": true } } }, "VM.NIC": { "type": "object", "properties": { + "networkId": { + "type": "string" + }, "externalIpAddress": { "type": "string" }, @@ -7211,9 +8161,6 @@ "networkAddress": { "type": "string" }, - "networkId": { - "type": "string" - }, "securityGroupIds": { "type": "array", "items": { @@ -7223,14 +8170,20 @@ } }, "VMDataCenter": { - "type": "object", - "required": [ - "id", - "regionId", - "supplierName", - "renewableEnergy" - ], + "type": "object", "properties": { + "id": { + "type": "string" + }, + "regionId": { + "type": "string" + }, + "supplierName": { + "type": "string" + }, + "renewableEnergy": { + "type": "boolean" + }, "diskPoolPricing": { "type": "array", "items": { @@ -7238,12 +8191,6 @@ "$ref": "#/definitions/DiskStoragePriceHr" } }, - "id": { - "type": "string" - }, - "ipv4PriceHr": { - "$ref": "#/definitions/Decimal" - }, "networkPricing": { "type": "array", "items": { @@ -7251,24 +8198,160 @@ "$ref": "#/definitions/NetworkPriceHr" } }, - "regionId": { - "type": "string" - }, - "renewableEnergy": { - "type": "boolean" + "ipv4PriceHr": { + "$ref": "#/definitions/Decimal" }, - "supplierName": { - "type": "string" + "ipv4Free": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "id", + "regionId", + "supplierName", + "renewableEnergy", + "ipv4Free" + ] }, "VMDataCenter.StorageClass": { "type": "string", - "default": "STORAGE_CLASS_UNKNOWN", "enum": [ "STORAGE_CLASS_UNKNOWN", "STORAGE_CLASS_LOCAL", "STORAGE_CLASS_NETWORK" + ], + "default": "STORAGE_CLASS_UNKNOWN" + }, + "VMDataCenter.VRouterSize": { + "type": "string", + "enum": [ + "VROUTER_INSTANCE_UNKNOWN", + "VROUTER_INSTANCE_SMALL", + "VROUTER_INSTANCE_MEDIUM", + "VROUTER_INSTANCE_LARGE" + ], + "default": "VROUTER_INSTANCE_UNKNOWN" + }, + "VMMachineType": { + "type": "object", + "properties": { + "dataCenterId": { + "type": "string" + }, + "machineType": { + "type": "string" + }, + "cpuModel": { + "type": "string" + }, + "gpuModel": { + "type": "string" + }, + "gpuModelId": { + "type": "string" + }, + "minVcpuPerMemoryGib": { + "type": "number", + "format": "double" + }, + "maxVcpuPerMemoryGib": { + "type": "number", + "format": "double" + }, + "minVcpuPerGpu": { + "type": "number", + "format": "double" + }, + "maxVcpuPerGpu": { + "type": "number", + "format": "double" + }, + "vcpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "memoryGibPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "gpuPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "minStorageGibPriceHr": { + "$ref": "#/definitions/Decimal" + }, + "ipv4PriceHr": { + "$ref": "#/definitions/Decimal" + }, + "renewableEnergy": { + "type": "boolean" + }, + "maxVcpuFree": { + "type": "integer", + "format": "int32" + }, + "totalVcpuFree": { + "type": "integer", + "format": "int32" + }, + "maxMemoryGibFree": { + "type": "integer", + "format": "int32" + }, + "totalMemoryGibFree": { + "type": "integer", + "format": "int32" + }, + "maxGpuFree": { + "type": "integer", + "format": "int32" + }, + "totalGpuFree": { + "type": "integer", + "format": "int32" + }, + "maxStorageGibFree": { + "type": "integer", + "format": "int32" + }, + "totalStorageGibFree": { + "type": "integer", + "format": "int32" + }, + "minVcpu": { + "type": "number", + "format": "double" + }, + "minMemoryGib": { + "type": "number", + "format": "double" + } + }, + "required": [ + "dataCenterId", + "machineType", + "cpuModel", + "gpuModel", + "gpuModelId", + "minVcpuPerMemoryGib", + "maxVcpuPerMemoryGib", + "minVcpuPerGpu", + "maxVcpuPerGpu", + "vcpuPriceHr", + "memoryGibPriceHr", + "gpuPriceHr", + "minStorageGibPriceHr", + "ipv4PriceHr", + "renewableEnergy", + "maxVcpuFree", + "totalVcpuFree", + "maxMemoryGibFree", + "totalMemoryGibFree", + "maxGpuFree", + "totalGpuFree", + "maxStorageGibFree", + "totalStorageGibFree", + "minVcpu", + "minMemoryGib" ] }, "VMMonitoringItem": { @@ -7279,51 +8362,87 @@ "format": "float" }, "diskRdBytes": { - "type": "integer", - "format": "int32" + "type": "string", + "format": "int64" }, "diskRdIops": { - "type": "integer", - "format": "int32" + "type": "string", + "format": "int64" }, "diskWrBytes": { - "type": "integer", - "format": "int32" + "type": "string", + "format": "int64" }, "diskWrIops": { + "type": "string", + "format": "int64" + }, + "memory": { + "type": "string", + "format": "int64" + }, + "netRx": { + "type": "string", + "format": "int64" + }, + "netTx": { + "type": "string", + "format": "int64" + }, + "timestamp": { + "type": "string", + "format": "int64" + } + } + }, + "VirtualMachineResult": { + "type": "object", + "properties": { + "projectId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "dataCenterId": { + "type": "string" + }, + "gpuModelId": { + "type": "string" + }, + "gpus": { "type": "integer", "format": "int32" }, - "memory": { + "vcpus": { "type": "integer", "format": "int32" }, - "netRx": { + "memoryGib": { "type": "integer", "format": "int32" }, - "netTx": { + "bootDiskSizeGib": { "type": "integer", "format": "int32" }, - "timestamp": { + "bootDiskPublicImageId": { + "type": "string" + }, + "bootDiskPrivateImageId": { "type": "string" + }, + "state": { + "$ref": "#/definitions/VmState" + }, + "createTime": { + "type": "string", + "format": "date-time" } } }, - "VRouterSize": { - "type": "string", - "default": "VROUTER_INSTANCE_UNKNOWN", - "enum": [ - "VROUTER_INSTANCE_UNKNOWN", - "VROUTER_INSTANCE_SMALL", - "VROUTER_INSTANCE_MEDIUM", - "VROUTER_INSTANCE_LARGE" - ] - }, "VmState": { "type": "string", - "default": "CLONING", "enum": [ "CLONING", "CREATING_SNAPSHOT", @@ -7343,29 +8462,66 @@ "STOPPING", "SUSPENDED", "SUSPENDING", - "UNKNOWN" - ] + "UNKNOWN", + "PENDING" + ], + "default": "CLONING" }, - "v1.PrivateImage": { + "protobuf.Any": { "type": "object", "properties": { - "dataCenterId": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "v1.DataCenter": { + "type": "object", + "properties": { + "id": { "type": "string" }, - "description": { + "regionId": { "type": "string" }, - "id": { + "supplierName": { "type": "string" }, - "projectId": { + "renewableEnergy": { + "type": "boolean" + }, + "lngLat": { + "$ref": "#/definitions/Point" + }, + "createBy": { + "type": "string", + "readOnly": true + }, + "oneFrontendId": { "type": "string" }, - "sizeGib": { - "type": "integer", - "format": "int32" + "s3Endpoint": { + "type": "string" } - } + }, + "required": [ + "id", + "oneFrontendId", + "s3Endpoint" + ] + }, + "v1.VRouterSize": { + "type": "string", + "enum": [ + "VROUTER_INSTANCE_UNKNOWN", + "VROUTER_INSTANCE_SMALL", + "VROUTER_INSTANCE_MEDIUM", + "VROUTER_INSTANCE_LARGE" + ], + "default": "VROUTER_INSTANCE_UNKNOWN" } } } \ No newline at end of file