{ "swagger": "2.0", "info": { "description": "Fortanix Confidential Computing Manager Backend. These are APIs using which the frontend and other clients (compute node agents) interact with Fortanix Confidential Computing Manager functionalities, which include compute node and app enrollment, attestation and signing, and Certificate Authority.", "version": "2.0.0", "title": "Confidential Computing Manager", "termsOfService": "https://www.fortanix.com/legal/terms/", "contact": { "name": "Fortanix Support", "url": "https://support.fortanix.com/hc/en-us/categories/360003107511-Confidential-Computing-Manager", "email": "support@fortanix.com" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } }, "host": "ccm.fortanix.com", "produces": [ "application/json" ], "schemes": [ "https" ], "securityDefinitions": { "bearerToken": { "type": "apiKey", "in": "header", "name": "Authentication", "description": "A JWT bearer token to be passed once authenticated." } }, "paths": { "/v1/zones": { "get": { "tags": [ "Zone" ], "summary": "Get all zones.", "description": "Get details of all the zones.", "operationId": "getZones", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Details of all the zones.", "schema": { "type": "array", "items": { "$ref": "#/definitions/Zone" } } } } } }, "/v1/zones/{zone-id}": { "get": { "tags": [ "Zone" ], "summary": "Get zone details.", "description": "Get details for a zone.", "operationId": "getZone", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/ZoneId" } ], "responses": { "200": { "description": "Details of the zone.", "schema": { "$ref": "#/definitions/Zone" } } } } }, "/v1/zones/{zone-id}/token": { "get": { "tags": [ "Zone" ], "summary": "Get the authentication token.", "description": "\"Retrieve the authentication token (\"join token\") used to enroll compute nodes in this zone.\"\n", "operationId": "getZoneJoinToken", "x-auth-resource": "Manager", "parameters": [ { "$ref": "#/parameters/ZoneId" } ], "responses": { "200": { "description": "Join token for the zone.", "schema": { "$ref": "#/definitions/ZoneJoinToken" } } } } }, "/v1/zones/{zone-id}/certificates": { "get": { "tags": [ "Zone" ], "summary": "Get all zone certificates", "description": "Get all certificates in the specified zone", "operationId": "GetZoneCertificates", "x-auth-resource": "Reader,Writer,Manager,ServiceAuth,AdminIfAuth", "parameters": [ { "$ref": "#/parameters/ZoneId" } ], "responses": { "200": { "description": "Details of all zone certificates.", "schema": { "$ref": "#/definitions/ZoneCertificates" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Zone" ], "summary": "Create a new zone certificate", "description": "Creates a new Zone Certificate for the specified Zone", "operationId": "createZoneCertificate", "x-auth-resource": "Manager", "parameters": [ { "$ref": "#/parameters/ZoneId" } ], "responses": { "200": { "description": "Details of the new zone certificate.", "schema": { "$ref": "#/definitions/ZoneCertificateCreateResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/zones/{zone-id}/certificates/rotate": { "post": { "tags": [ "Zone" ], "summary": "Rotate zone certificate", "description": "Rotates the Zone Certificate for the specified Zone", "operationId": "rotateZoneCertificate", "x-auth-resource": "Manager", "parameters": [ { "$ref": "#/parameters/ZoneId" } ], "responses": { "200": { "description": "Details of the new zone certificate.", "schema": { "$ref": "#/definitions/ZoneCertificates" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/accounts": { "get": { "tags": [ "Accounts" ], "summary": "Get all accounts.", "description": "Get detailed information about all accounts that the current user has permission to see.", "operationId": "getAccounts", "x-auth-resource": "UserAuth,Reader,Writer,Manager", "parameters": [ { "name": "scope", "in": "query", "description": "Specify the scope from which to get the accounts. Possible options: USER, SYSTEM.", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of accounts to return.", "required": false, "type": "integer" }, { "name": "previous_id", "in": "query", "description": "Id of account from previous page of results.", "required": false, "type": "string", "format": "uuid" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" } ], "responses": { "200": { "description": "All account details for the current user.", "schema": { "$ref": "#/definitions/AccountListResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Accounts" ], "summary": "Create a new account.", "description": "Create a new account with the specified properties. Only an authenticated user can create an account.", "parameters": [ { "$ref": "#/parameters/AccountRequest" } ], "operationId": "createAccount", "x-auth-resource": "UserAuth,Reader,Writer,Manager", "responses": { "200": { "description": "The details of the account created.", "schema": { "$ref": "#/definitions/Account" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/accounts/{account-id}": { "get": { "tags": [ "Accounts" ], "summary": "Get a specific account.", "description": "Look up an account by account ID. Current user must belong to a particular account.", "parameters": [ { "$ref": "#/parameters/AccountId" }, { "$ref": "#/parameters/WithTotals" } ], "operationId": "getAccount", "x-auth-resource": "UserAuth,Reader,Writer,Manager", "responses": { "200": { "description": "Particular account details.", "schema": { "$ref": "#/definitions/Account" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Accounts" ], "summary": "Delete an account.", "description": "Remove an account.", "parameters": [ { "$ref": "#/parameters/AccountId" } ], "operationId": "deleteAccount", "x-auth-resource": "NoAuth", "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Accounts" ], "summary": "Update an account.", "description": "Update the properties of an account. Only certain properties may be changed with this API.", "parameters": [ { "$ref": "#/parameters/AccountId" }, { "$ref": "#/parameters/AccountUpdateRequest" } ], "operationId": "updateAccount", "x-auth-resource": "Manager, UserAuth", "responses": { "200": { "description": "Updated account.", "schema": { "$ref": "#/definitions/Account" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/builds": { "get": { "tags": [ "Build" ], "summary": "Get all images information.", "description": "Get the image's information with all the attributes.", "operationId": "getAllBuilds", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "all_search", "in": "query", "description": "Search on all fields(docker image name, app name, mrenclave, mrsigner, app output image name).", "required": false, "type": "string" }, { "name": "docker_image_name", "in": "query", "description": "Search on docker image name or app's output image name.", "required": false, "type": "string" }, { "name": "config_id", "in": "query", "description": "Search builds with access to application config id.", "required": false, "type": "string" }, { "$ref": "#/parameters/BuildDeploymentStatusType" }, { "$ref": "#/parameters/BuildStatusType" }, { "name": "limit", "in": "query", "description": "Maximum numbers of images to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of images to skip from start.", "required": false, "type": "integer" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter to use for items, currently supports list of groups", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for image objects.", "schema": { "$ref": "#/definitions/GetAllBuildsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Build" ], "summary": "Create a new image.", "description": "Create a new image.", "operationId": "createBuild", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/CreateBuildRequest" } ], "responses": { "200": { "description": "Details of the created image.", "schema": { "$ref": "#/definitions/Build" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/builds/{build-id}": { "get": { "tags": [ "Build" ], "summary": "Get details of a particular image.", "description": "Details of a particular image.", "operationId": "getBuild", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/BuildId" } ], "responses": { "200": { "description": "Details of an image.", "schema": { "$ref": "#/definitions/Build" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Build" ], "summary": "Delete a particular image.", "description": "Delete a particular image.", "operationId": "deleteBuild", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/BuildId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Build" ], "summary": "Update details of a particular image.", "description": "Update details of a particular image.", "operationId": "updateBuild", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/BuildId" }, { "$ref": "#/parameters/BuildUpdateRequest" } ], "responses": { "200": { "description": "Details of a compute node.", "schema": { "$ref": "#/definitions/Build" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/builds/deployments/{build-id}": { "get": { "tags": [ "Build" ], "summary": "Get all deployments of an image.", "description": "Get all deployments of an image.", "operationId": "getBuildDeployments", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/BuildId" }, { "$ref": "#/parameters/AppStatusType" }, { "name": "all_search", "in": "query", "description": "Search on all fields (image status and compute node name).", "required": false, "type": "string" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum number of images to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of images to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "Details of image deployments.", "schema": { "$ref": "#/definitions/GetAllBuildDeploymentsResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/builds/convert-app/nitro-enclaves": { "post": { "tags": [ "Build" ], "summary": "Convert a docker image and create a new Nitro enclaves converted image.", "description": "Convert a docker image and create a new Nitro enclaves converted image.", "operationId": "convertAppBuildNitroEnclaves", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/NitroEnclavesConversionRequest" } ], "responses": { "200": { "description": "Details of the created image.", "schema": { "$ref": "#/definitions/Build" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/builds/convert-app/aci": { "post": { "tags": [ "Build" ], "summary": "Analyze a docker image and create Confidential ACI deployment templates.", "description": "Analyze a docker image and create Confidential ACI deployment templates.", "operationId": "convertAppBuildAci", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/AciConversionRequest" } ], "responses": { "200": { "description": "Details of the created image.", "schema": { "$ref": "#/definitions/Build" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/nodes": { "get": { "tags": [ "Node" ], "summary": "Get all compute nodes information.", "description": "Get compute nodes information with status.", "operationId": "getAllNodes", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "Compute node name.", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Compute node description.", "required": false, "type": "string" }, { "name": "sgx_version", "in": "query", "description": "Search on node's SGX platform software version.", "required": false, "type": "string" }, { "name": "all_search", "in": "query", "description": "Search on name or description.", "required": false, "type": "string" }, { "name": "attestation_type", "in": "query", "description": "Node Attestation type (DCAP, NITRO_ENCLAVE or AMD_SEV_SNP).", "required": false, "type": "string" }, { "$ref": "#/parameters/NodeStatusType" }, { "name": "limit", "in": "query", "description": "Maximum numbers of compute nodes to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of compute nodes to skip from start.", "required": false, "type": "integer" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter query supports searching by list of node_id.", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for compute node objects.", "schema": { "$ref": "#/definitions/GetAllNodesResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Node" ], "summary": "Provision a new compute node.", "description": "Provision a new compute node.", "operationId": "provisionNode", "x-auth-resource": "Manager,JoinTokenAuth", "parameters": [ { "$ref": "#/parameters/NodeProvisionRequest" } ], "responses": { "200": { "description": "Compute node creation task.", "schema": { "$ref": "#/definitions/TaskResult" } } } } }, "/v1/nodes/{node-id}": { "get": { "tags": [ "Node" ], "summary": "Get details of a particular compute node.", "description": "Details of a particular compute node.", "operationId": "getNode", "x-auth-resource": "Reader,Writer,Manager,AgentAuth", "parameters": [ { "$ref": "#/parameters/NodeId" } ], "responses": { "200": { "description": "Details of a compute node.", "schema": { "$ref": "#/definitions/Node" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Node" ], "summary": "Update details of a particular compute node.", "description": "Update details of a particular compute node.", "operationId": "updateNode", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/NodeId" }, { "$ref": "#/parameters/NodeUpdateRequest" } ], "responses": { "200": { "description": "Details of a compute node.", "schema": { "$ref": "#/definitions/Node" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/nodes/{node-id}/certificate": { "get": { "tags": [ "Node" ], "summary": "Get an attested compute node's certificate.", "description": "Get certificate for the compute node, only if the compute node is attested.", "operationId": "getNodeCertificate", "x-auth-resource": "Reader,Writer,Manager,JoinTokenAuth,AgentAuth", "parameters": [ { "$ref": "#/parameters/NodeId" } ], "responses": { "200": { "description": "Compute node certificate.", "schema": { "$ref": "#/definitions/Certificate" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/nodes/{node-id}/certificate-details": { "get": { "tags": [ "Node" ], "summary": "Get a compute node's certificate.", "description": "Get certificate for the compute node.", "x-auth-resource": "Reader,Writer,Manager", "operationId": "getNodeCertificateDetails", "parameters": [ { "$ref": "#/parameters/NodeId" } ], "responses": { "200": { "description": "Certificate details.", "schema": { "$ref": "#/definitions/CertificateDetails" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/nodes/{node-id}/deactivate": { "post": { "tags": [ "Node" ], "summary": "Deactivate a particular compute node.", "description": "Deactivate a particular compute node.", "operationId": "deactivateNode", "x-auth-resource": "Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/NodeId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/certificates/{cert-id}": { "get": { "tags": [ "Certificate" ], "summary": "Retrieve a certificate.", "description": "Retrieve a certificate.", "operationId": "getCertificate", "x-auth-resource": "Reader,Writer,Manager,AgentAuth,JoinTokenAuth", "parameters": [ { "$ref": "#/parameters/CertificateId" } ], "responses": { "200": { "description": "Certificate", "schema": { "$ref": "#/definitions/Certificate" } } } } }, "/v1/apps": { "get": { "tags": [ "App" ], "summary": "Get all apps information.", "description": "Get app's information with status.", "operationId": "getAllApps", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "App name.", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Compute node description.", "required": false, "type": "string" }, { "name": "all_search", "in": "query", "description": "Search on name or description.", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of apps to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of apps to skip from start.", "required": false, "type": "integer" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter to use for items, currently supports list of groups", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for App objects.", "schema": { "$ref": "#/definitions/GetAllAppsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "App" ], "summary": "Add an application.", "description": "Add an application.", "operationId": "addApplication", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/AppRequest" } ], "responses": { "200": { "description": "Details of an app.", "schema": { "$ref": "#/definitions/App" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/apps/{app-id}": { "get": { "tags": [ "App" ], "summary": "Get details of a particular app.", "description": "Details of a particular app.", "operationId": "getApp", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/AppId" } ], "responses": { "200": { "description": "Details of an app.", "schema": { "$ref": "#/definitions/App" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "App" ], "summary": "Update details of a particular app.", "description": "Update a particular app.", "operationId": "updateApp", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/AppId" }, { "$ref": "#/parameters/AppBodyUpdateRequest" } ], "responses": { "200": { "description": "Details of an app.", "schema": { "$ref": "#/definitions/App" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "App" ], "summary": "Delete a particular app", "description": "Delete a particular app.", "operationId": "deleteApp", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/AppId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/apps/{app-id}/node/{node-id}/certificate-details": { "get": { "tags": [ "App" ], "summary": "Get an app's certificate for a compute node.", "description": "Get certificate for the app of a compute node.", "x-auth-resource": "Reader,Writer,Manager", "operationId": "getAppNodeCertificateDetails", "parameters": [ { "$ref": "#/parameters/NodeId" }, { "$ref": "#/parameters/AppId" } ], "responses": { "200": { "description": "App certificate details.", "schema": { "$ref": "#/definitions/CertificateDetails" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/apps/{app-id}/node/{node-id}/certificate": { "get": { "tags": [ "App" ], "summary": "Get an attested app's certificate.", "description": "Get certificate for the app, only if the compute node and app has been attested.", "operationId": "getAppCertificate", "x-auth-resource": "Reader,Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/NodeId" }, { "$ref": "#/parameters/AppId" } ], "responses": { "200": { "description": "App certificate.", "schema": { "$ref": "#/definitions/Certificate" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/apps/unique_labels/count": { "get": { "tags": [ "App" ], "summary": "Get all the unique labels across all the applications within selected account", "description": "Get all the unique labels (with count) across all the applications within selected account.", "operationId": "getAppsUniqueLabels", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Applications Labels.", "schema": { "$ref": "#/definitions/LabelsCount" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/tasks": { "get": { "tags": [ "Task" ], "summary": "Get all the tasks.", "description": "Get all the tasks in the system.", "operationId": "getAllTasks", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "task_type", "in": "query", "required": false, "type": "string", "description": "Task type.", "enum": [ "NODE_ATTESTATION", "CERTIFICATE_ISSUANCE", "BUILD_WHITELIST", "DOMAIN_WHITELIST" ] }, { "name": "status", "in": "query", "description": "Task status.", "required": false, "type": "string", "enum": [ "PENDING", "CLOSED" ] }, { "name": "requester", "in": "query", "description": "UserName of requester.", "required": false, "type": "string" }, { "name": "approver", "in": "query", "description": "UserName of approver.", "required": false, "type": "string" }, { "name": "all_search", "in": "query", "description": "Search on Requester or Request.", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of tasks to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of tasks to skip from start.", "required": false, "type": "integer" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "base_filters", "in": "query", "description": "Filters to be applied on base query (count and results) key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for Task objects.", "schema": { "$ref": "#/definitions/GetAllTasksResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/tasks/{task-id}": { "get": { "tags": [ "Task" ], "summary": "Get details of a particular task.", "description": "Get the details of a task.", "operationId": "getTask", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/TaskId" } ], "responses": { "200": { "description": "Task Details.", "schema": { "$ref": "#/definitions/Task" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Task" ], "summary": "Update status of approver and task.", "description": "Update status of approver and task.", "operationId": "UpdateTask", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/TaskId" }, { "$ref": "#/parameters/TaskUpdateRequest" } ], "responses": { "200": { "description": "Updated Task status.", "schema": { "$ref": "#/definitions/TaskResult" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Task" ], "summary": "Delete a particular task.", "description": "Delete a particular task if not in pending state.", "operationId": "deleteTask", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/TaskId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/tasks/status/{task-id}": { "get": { "tags": [ "Task" ], "summary": "Get status and result of a particular task.", "description": "Get status of a task. If the task is completed, it also returns the result values, if any.", "operationId": "getTaskStatus", "x-auth-resource": "Reader,Writer,Manager,AgentAuth,JoinTokenAuth", "parameters": [ { "$ref": "#/parameters/TaskId" } ], "responses": { "200": { "description": "Task Details.", "schema": { "$ref": "#/definitions/TaskResult" } } } } }, "/v1/user": { "get": { "tags": [ "Users" ], "summary": "Get details of the current logged in user.", "description": "Get details of the current logged in user.", "operationId": "getLoggedInUser", "x-auth-resource": "UserAuth,Reader,Writer,Manager", "responses": { "200": { "description": "User Details.", "schema": { "$ref": "#/definitions/User" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/users": { "get": { "tags": [ "Users" ], "summary": "Get all user's information.", "description": "Get user's information with status.", "operationId": "getAllUsers", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "all_search", "in": "query", "description": "Search on name or email.", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of users to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of users to skip from start.", "required": false, "type": "integer" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for user's objects.", "schema": { "$ref": "#/definitions/GetAllUsersResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Users" ], "summary": "Create a new user.", "description": "Sign up a new user.", "operationId": "createUser", "x-auth-resource": "NoAuth", "parameters": [ { "$ref": "#/parameters/SignupRequest" } ], "responses": { "201": { "description": "Created user details.", "schema": { "$ref": "#/definitions/User" } } } } }, "/v1/users/invite": { "post": { "tags": [ "Users" ], "summary": "Invite a user.", "description": "Invite an existing user or a new user to join an existing account.", "operationId": "inviteUser", "x-auth-resource": "Manager,ManagerInLockedAccount", "parameters": [ { "$ref": "#/parameters/InviteUserRequest" } ], "responses": { "201": { "description": "Invited User details.", "schema": { "$ref": "#/definitions/User" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/users/{user-id}": { "get": { "tags": [ "Users" ], "summary": "Get details of a particular user.", "description": "Get details of a user.", "operationId": "getUser", "x-auth-resource": "UserAuth,Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/UserId" } ], "responses": { "200": { "description": "User Details.", "schema": { "$ref": "#/definitions/User" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Users" ], "summary": "Update status, name, and the role of a user. User with MANAGER access role can only update another user.", "description": "Update status, name, and the role of a user. User with MANAGER access role can only update another users.", "operationId": "UpdateUser", "x-auth-resource": "UserAuth,Reader,Writer,Manager,ManagerInLockedAccount,WriterInLockedAccount", "parameters": [ { "$ref": "#/parameters/UserId" }, { "$ref": "#/parameters/UpdateUserRequest" } ], "responses": { "200": { "description": "Updated User status, name, and role.", "schema": { "$ref": "#/definitions/User" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Users" ], "summary": "Completely delete a user profile from system", "description": "Completely deletes the currently logged in user from the system.", "operationId": "deleteUserAccount", "x-auth-resource": "UserAuth,Reader,Writer,Manager,ManagerInLockedAccount,WriterInLockedAccount", "parameters": [ { "$ref": "#/parameters/UserId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/users/{user-id}/accounts": { "get": { "tags": [ "Users" ], "summary": "Get user accounts", "description": "Get information about the accounts of which the user is a member", "operationId": "getUserAccounts", "x-auth-resource": "UserAuth", "parameters": [ { "$ref": "#/parameters/UserId" } ], "responses": { "200": { "description": "Information about the accounts of the user", "schema": { "$ref": "#/definitions/GetUserAccountsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Users" ], "summary": "Remove user's association with an account.", "operationId": "deleteUserFromAccount", "x-auth-resource": "Reader,Writer,Manager,ManagerInLockedAccount,WriterInLockedAccount", "parameters": [ { "$ref": "#/parameters/UserId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/sys/auth": { "post": { "tags": [ "Auth" ], "summary": "User authentication", "description": "User authentication.", "operationId": "authenticateUser", "x-auth-resource": "NoAuth", "parameters": [ { "$ref": "#/parameters/AuthRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/AuthResponse" } } } } }, "/v1/sys/auth/discover": { "post": { "tags": [ "Auth" ], "summary": "Discover the supported authentication methods for a user.", "description": "Discover the supported authentication methods for a user.", "operationId": "discover", "x-auth-resource": "NoAuth", "parameters": [ { "name": "acct_id", "in": "query", "required": false, "type": "string", "format": "uuid" }, { "name": "auth_discover_request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/AuthDiscoverRequest" } } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/AuthDiscoverResponse" } } } } }, "/v1/sys/session/refresh": { "post": { "tags": [ "Auth" ], "summary": "Refreshes existing user session.", "description": "Refreshes an existing session, thus extending the expiration time of the existing session token.", "operationId": "refresh", "x-auth-resource": "NoAuth", "responses": { "200": { "description": "Refreshed Session Info.", "schema": { "$ref": "#/definitions/RefreshResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/sys/session/terminate": { "post": { "tags": [ "Auth" ], "summary": "Terminate a session", "description": "Terminate an authenticated session. After this call, session cannot be refreshed.", "operationId": "terminate", "x-auth-resource": "UserAuth,Reader,Writer,Manager,ManagerInLockedAccount,WriterInLockedAccount", "responses": { "204": { "description": "Nothing is returned on success" } }, "security": [ { "bearerToken": [] } ] } }, "/v1/sys/session/select_account/{account-id}": { "post": { "summary": "Select a user's account to work on.", "description": "\"Select one of the user's account to proceed. This is applicable when a user is associated with one or more account.\"\n", "tags": [ "Auth" ], "operationId": "selectAccountBodrum", "x-auth-resource": "UserAuth,Reader,Writer,Manager,ManagerInLockedAccount,WriterInLockedAccount", "parameters": [ { "$ref": "#/parameters/AccountId" } ], "responses": { "200": { "description": "Session Info.", "schema": { "$ref": "#/definitions/SelectAccountResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/sys/version": { "get": { "tags": [ "System" ], "summary": "Get Manager Version.", "description": "Get Manager Version.", "operationId": "getManagerVersion", "x-auth-resource": "NoAuth", "responses": { "200": { "description": "Manager Version.", "schema": { "$ref": "#/definitions/VersionResponse" } } } } }, "/v1/system/config": { "patch": { "tags": [ "Admin" ], "summary": "Modify cluster configuration by SysAdmin", "description": "Modify cluster-wide configuration by SysAdmin.", "operationId": "sysadminUpdateClusterConfig", "x-auth-resource": "Manager,ManagerInLockedAccount", "parameters": [], "responses": { "200": { "description": "Cluster was configured by SysAdmin successfully.", "schema": { "$ref": "#/definitions/SysAdminGetClusterConfigurationResponse" } } } }, "get": { "tags": [ "Admin" ], "summary": "Get cluster configuration by SysAdmin", "description": "Get cluster-wide configuration by SysAdmin.", "operationId": "sysadminGetClusterConfigure", "x-auth-resource": "Reader,Manager,ManagerInLockedAccount", "parameters": [ { "$ref": "#/parameters/GetClusterConfigParams" } ], "responses": { "200": { "description": "Cluster configuration.", "schema": { "$ref": "#/definitions/SysAdminGetClusterConfigurationResponse" } } } } }, "/v1/tools/converter/convert-app/nitro-enclaves": { "post": { "tags": [ "Tools" ], "summary": "Convert an application to run in Nitro Enclaves.", "description": "", "operationId": "convertAppNitroEnclaves", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ConverterSvcNitroEnclavesConversionRequest" } } ], "responses": { "200": { "description": "Registry and image name for the output container (same as outputImageName in the request)", "schema": { "$ref": "#/definitions/ConverterSvcNitroEnclavesConversionResponse" } } } } }, "/v1/tools/converter/convert-app/aci": { "post": { "tags": [ "Tools" ], "summary": "Convert an application to run in ACI.", "description": "", "operationId": "convertAppAci", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/ConverterSvcAciConversionRequest" } } ], "responses": { "200": { "description": "Generated templates", "schema": { "$ref": "#/definitions/ConverterSvcAciConversionResponse" } } } } }, "/v1/registry": { "post": { "tags": [ "Registry" ], "summary": "Add a new registry to an account", "description": "Add a new registry to an account.", "operationId": "createRegistry", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/RegistryRequest" } ], "responses": { "200": { "description": "Registry information.", "schema": { "$ref": "#/definitions/Registry" } } }, "security": [ { "bearerToken": [] } ] }, "get": { "tags": [ "Registry" ], "summary": "Get details of all registry in the account", "description": "Get details of all registry in the account.", "operationId": "getAllRegistries", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Get details of all registry in the account.", "schema": { "type": "array", "items": { "$ref": "#/definitions/Registry" } } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/registry/{registry-id}": { "get": { "tags": [ "Registry" ], "summary": "Get details of a particular registry", "description": "Details of a particular registry.", "operationId": "getRegistry", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/RegistryId" } ], "responses": { "200": { "description": "Details of a registry.", "schema": { "$ref": "#/definitions/Registry" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "Registry" ], "summary": "Update a particular registry details", "description": "Update a particular registry details. Description and credential are the only editable field of a registry.", "operationId": "updateRegistry", "parameters": [ { "$ref": "#/parameters/RegistryId" }, { "$ref": "#/parameters/UpdateRegistryRequest" } ], "x-auth-resource": "Writer,Manager,ActiveAccount", "responses": { "200": { "description": "Registry information.", "schema": { "$ref": "#/definitions/Registry" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Registry" ], "summary": "Delete registry", "description": "Delete registry.", "operationId": "deleteRegistry", "parameters": [ { "$ref": "#/parameters/RegistryId" } ], "x-auth-resource": "Writer,Manager", "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/registry/app/{app-id}": { "get": { "tags": [ "Registry" ], "summary": "Get details of the registry that will be used for the particular app images", "description": "Get details of the registry that will be used for the particular app images.", "operationId": "getRegistryForApp", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/AppId" } ], "responses": { "200": { "description": "Registry details that will be used from saved registry credentials for the particular app images.", "schema": { "$ref": "#/definitions/AppRegistryResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/image/registry": { "get": { "tags": [ "Registry" ], "summary": "Get details of the registry that will be used for the particular image", "description": "Get details of the registry that will be used for the particular image.", "operationId": "getRegistryForImage", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "image_name", "in": "query", "description": "Docker image name.", "required": true, "type": "string" } ], "responses": { "200": { "description": "Registry detail that will be used from saved registry credentials for the particular image.", "schema": { "$ref": "#/definitions/ImageRegistryResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/app_configs": { "get": { "tags": [ "ApplicationConfig" ], "summary": "Get all app configs", "description": "Get detailed information of all app configs that the current user has access to.", "operationId": "getAllApplicationConfigs", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "App config name", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "App config description.", "required": false, "type": "string" }, { "name": "image_id", "in": "query", "description": "Search configurations for given image id", "required": false, "type": "string", "format": "uuid" }, { "name": "filter", "in": "query", "description": "Filter to use for items, currently supports labels, syntax: {\"labels\":{\"key1\":\"value1\",\"key2\":\"value2\"}}", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of app configs to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of app configs to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "Search result for app config objects.", "schema": { "$ref": "#/definitions/GetAllApplicationConfigsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "ApplicationConfig" ], "summary": "Add an app config.", "description": "Add an app config.", "operationId": "createApplicationConfig", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/CreateApplicationConfigRequest" } ], "responses": { "200": { "description": "Details of an app config", "schema": { "$ref": "#/definitions/ApplicationConfigResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/runtime/app_configs": { "get": { "tags": [ "ApplicationConfig" ], "summary": "Get app config", "description": "Get current app config via certificate authentication", "operationId": "getRuntimeApplicationConfig", "x-auth-resource": "AppAuth", "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/RuntimeAppConfig" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/runtime/app_configs/{config-id}": { "get": { "tags": [ "ApplicationConfig" ], "summary": "Get details of a particular runtime app config.", "description": "Get details of a particular runtime app config.", "operationId": "getSpecificRuntimeApplicationConfig", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/ApplicationConfigId" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/RuntimeAppConfig" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/app_configs/{config-id}": { "get": { "tags": [ "ApplicationConfig" ], "summary": "Get details of a particular app config.", "description": "Get details of a particular app config.", "operationId": "getApplicationConfig", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/ApplicationConfigId" } ], "responses": { "200": { "description": "Details of an app config", "schema": { "$ref": "#/definitions/ApplicationConfigResponse" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "ApplicationConfig" ], "summary": "Delete a particular app config", "description": "Delete a particular app config", "operationId": "deleteApplicationConfig", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/ApplicationConfigId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "ApplicationConfig" ], "summary": "Update details of a particular app config.", "description": "Update details of a particular app config.", "operationId": "updateApplicationConfig", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/ApplicationConfigId" }, { "$ref": "#/parameters/UpdateApplicationConfigRequest" } ], "responses": { "200": { "description": "Details of an app config", "schema": { "$ref": "#/definitions/ApplicationConfigResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/approval_requests": { "get": { "tags": [ "ApprovalRequests" ], "summary": "Get all approval requests", "description": "Get detailed information of all approval requests that the current user has access to.", "operationId": "getAllApprovalRequests", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "requester", "in": "query", "description": "Only retrieve approval requests with the specified requester ID", "required": false, "type": "string", "format": "uuid" }, { "name": "reviewer", "in": "query", "description": "Only retrieve approval requests with the specified reviewer ID", "required": false, "type": "string", "format": "uuid" }, { "name": "subject", "in": "query", "description": "Only retrieve approval requests with the specified subject ID", "required": false, "type": "string", "format": "uuid" }, { "name": "status", "in": "query", "description": "Only retrieve approval requests with the specified approval status", "required": false, "type": "string", "enum": [ "PENDING", "APPROVED", "DENIED", "FAILED" ] }, { "name": "all_search", "in": "query", "description": "Search on name or description.", "required": false, "type": "string" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of app configs to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of app configs to skip from start.", "required": false, "type": "integer" }, { "name": "filter", "in": "query", "description": "Filter items based on groups or labels.", "required": false, "type": "string" } ], "responses": { "200": { "description": "Search result for approval request objects.", "schema": { "$ref": "#/definitions/GetAllApprovalRequests" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "ApprovalRequests" ], "summary": "Create approval request.", "description": "Create approval request", "operationId": "createApprovalRequest", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/ApprovalRequestRequest" } ], "responses": { "201": { "description": "A newly created approval request.", "schema": { "$ref": "#/definitions/ApprovalRequest" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/approval_requests/{request-id}": { "get": { "tags": [ "ApprovalRequests" ], "summary": "Get an approval request.", "description": "Get the details and status of a particular approval request.", "operationId": "getApprovalRequest", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/RequestId" } ], "responses": { "200": { "description": "Details about the specified approval request.", "schema": { "$ref": "#/definitions/ApprovalRequest" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "ApprovalRequests" ], "summary": "Delete an approval request.", "parameters": [ { "$ref": "#/parameters/RequestId" } ], "operationId": "deleteApprovalRequest", "x-auth-resource": "Reader,Writer,Manager", "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/approval_requests/{request-id}/approve": { "post": { "tags": [ "ApprovalRequests" ], "summary": "Approve a request.", "parameters": [ { "$ref": "#/parameters/RequestId" }, { "$ref": "#/parameters/ApproveRequest" } ], "operationId": "approveApprovalRequest", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Details about the specified approval request.", "schema": { "$ref": "#/definitions/ApprovalRequest" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/approval_requests/{request-id}/deny": { "post": { "tags": [ "ApprovalRequests" ], "summary": "Deny a request.", "parameters": [ { "$ref": "#/parameters/RequestId" }, { "$ref": "#/parameters/DenyRequest" } ], "operationId": "denyApprovalRequest", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Details about the specified approval request.", "schema": { "$ref": "#/definitions/ApprovalRequest" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/approval_requests/{request-id}/result": { "post": { "tags": [ "ApprovalRequests" ], "summary": "Get the result for an approved or failed request.", "parameters": [ { "$ref": "#/parameters/RequestId" } ], "operationId": "getApprovalRequestResult", "x-auth-resource": "Reader,Writer,Manager", "responses": { "200": { "description": "Details about the specified approval request result.", "schema": { "$ref": "#/definitions/ApprovableResult" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/clusters": { "post": { "tags": [ "ComputeClusters" ], "summary": "Add a new compute cluster to an account", "description": "Add a new compute cluster to an account", "operationId": "createComputeCluster", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/ComputeClusterRequest" } ], "responses": { "200": { "description": "Cluster information", "schema": { "$ref": "#/definitions/ComputeClusterResponse" } } }, "security": [ { "bearerToken": [] } ] }, "get": { "tags": [ "ComputeClusters" ], "summary": "Get details of all compute clusters in the account", "description": "Get details of all compute clusters in the account", "operationId": "getAllComputeClusters", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "Cluster name", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Cluster description.", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of clusters to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of clusters to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "Get details of all clusters in the account", "schema": { "$ref": "#/definitions/GetAllComputeClustersResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/clusters/{cluster-id}": { "get": { "tags": [ "ComputeClusters" ], "summary": "Get details of a particular compute cluster", "description": "Get details of a particular compute cluster", "operationId": "getComputeClusters", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/ComputeClusterId" } ], "responses": { "200": { "description": "Details of a cluster", "schema": { "$ref": "#/definitions/ComputeClusterResponse" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "ComputeClusters" ], "summary": "Update a particular compute cluster details", "description": "Update a particular compute cluster details.", "operationId": "updateComputeCluster", "parameters": [ { "$ref": "#/parameters/ComputeClusterId" }, { "$ref": "#/parameters/ComputeClusterRequest" } ], "x-auth-resource": "Writer,Manager,ActiveAccount", "responses": { "200": { "description": "Cluster information", "schema": { "$ref": "#/definitions/ComputeClusterResponse" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "ComputeClusters" ], "summary": "Delete compute cluster", "description": "Delete compute cluster", "operationId": "deleteComputeCluster", "parameters": [ { "$ref": "#/parameters/ComputeClusterId" } ], "x-auth-resource": "Writer,Manager", "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } }, "/v1/datasets": { "get": { "tags": [ "Dataset" ], "summary": "Get all datasets", "description": "Get detailed information of all datasets that the current user has access to.", "operationId": "getAllDatasets", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "Dataset name", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Dataset description.", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter to use for items, currently supports labels, syntax: {\"labels\":{\"key1\":\"value1\",\"key2\":\"value2\"}}", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of datasets to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of datasets to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/GetAllDatasetsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "Dataset" ], "summary": "Create a new dataset object.", "operationId": "createDataset", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/CreateDatasetRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/Dataset" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/datasets/{dataset-id}": { "get": { "summary": "Retrieve information about a particular dataset.", "description": "Retrieve information about a particular dataset. Note that credentials are treated as secrets and are excluded from the response here.", "tags": [ "Dataset" ], "operationId": "getDataset", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/DatasetId" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/Dataset" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "summary": "Delete a particular dataset.", "description": "Deleting a particular dataset also deletes any affiliated stored secrets.", "tags": [ "Dataset" ], "operationId": "deleteDataset", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/DatasetId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] }, "patch": { "summary": "Modify a particular dataset.", "tags": [ "Dataset" ], "operationId": "updateDataset", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/DatasetId" }, { "$ref": "#/parameters/DatasetUpdateRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/Dataset" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflow_runs": { "get": { "tags": [ "WorkflowRuns" ], "summary": "Get all registered running workflows", "description": "Does not query the orchestrator backend but rather a database table of registered running workflows", "operationId": "getAllWorkflowRuns", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "A FilterQuery expression that specifies a filter to apply", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum amount of entries to provide (default is 1000)", "type": "integer", "required": false }, { "name": "previous_id", "in": "query", "description": "Start after this Run ID", "type": "string", "format": "uuid" }, { "name": "previous_sort_value", "in": "query", "type": "string", "description": "If a sort_by is specified that is not the ID (e.g. sort_by=name:ASC), then the value corresponding to that field of the previous_id entry must be given. This field is used for (1) efficient index lookup, and (2) to keep track of the current position in the collection, even if the previous_id entry is updated or deleted in the mean time." } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/GetAllWorkflowRunsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "tags": [ "WorkflowRuns" ], "summary": "Start the given workflow", "description": "", "operationId": "startWorkflowRun", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/StartWorkflowRunRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WorkflowRunStatusResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflow_runs/{run-id}": { "patch": { "tags": [ "WorkflowRuns" ], "summary": "Update the properties of a workflow run", "description": "", "operationId": "updateWorkflowRun", "x-auth-resource": "JobWorkerAuth", "parameters": [ { "$ref": "#/parameters/WorkflowRunId" }, { "$ref": "#/parameters/UpdateWorkflowRunRequest" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WorkflowRun" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflow_runs/{run-id}/status": { "get": { "tags": [ "WorkflowRuns" ], "summary": "Get the status of the given running workflow", "description": "", "operationId": "getWorkflowRunStatus", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowRunId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WorkflowRunStatusResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflow_runs/{run-id}/logs": { "get": { "tags": [ "WorkflowRuns" ], "summary": "Retrieve logs from an app in the given workflow", "description": "", "operationId": "getWorkflowRunLogs", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowRunId" }, { "$ref": "#/parameters/RuntimeConfigId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WorkflowRunLogsResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflow_runs/{run-id}/stop": { "post": { "tags": [ "WorkflowRuns" ], "summary": "Stop execution for the given workflow.", "description": "", "operationId": "stopWorkflowRun", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/WorkflowRunId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/WorkflowRunStatusResponse" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflows/final/graphs": { "get": { "summary": "Search all the final workflow graphs.", "tags": [ "WorkflowFinal" ], "operationId": "getAllFinalWorkflowGraphs", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "Final workflow name", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Final workflow description.", "required": false, "type": "string" }, { "name": "project", "in": "query", "description": "The workflow project.", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter to use for contained workflow versions, currently supports labels, syntax: {\"labels\":{\"key1\":\"value1\",\"key2\":\"value2\"}}", "required": false, "type": "string" }, { "name": "all_search", "in": "query", "description": "Search on name or description.", "required": false, "type": "string" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of workflows to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of workflows to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/GetAllFinalWorkflowGraphsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "summary": "Create a finalized workflow graph request via approval.", "tags": [ "WorkflowFinal" ], "operationId": "createFinalWorkflowGraph", "x-auth-resource": "ApprovalAuth", "parameters": [ { "$ref": "#/parameters/CreateFinalWorkflowGraphRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/FinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflows/final/graphs/{graph-id}": { "post": { "tags": [ "WorkflowFinal" ], "summary": "Create a new version for a particular final workflow", "description": "Create a new version for a particular final workflow", "operationId": "updateFinalWorkflowGraph", "x-auth-resource": "ApprovalAuth", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/CreateWorkflowVersionRequest" } ], "responses": { "200": { "description": "The data for the created version within the workflow.", "schema": { "$ref": "#/definitions/VersionInFinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] }, "get": { "tags": [ "WorkflowFinal" ], "summary": "Get details of a particular final workflow", "description": "Get details of a particular final workflow", "operationId": "getFullFinalWorkflowGraph", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "name": "acct_id", "in": "query", "description": "Account which owns the final workflow", "required": false, "type": "string", "format": "uuid" } ], "responses": { "200": { "description": "The workflow with all contained graph versions.", "schema": { "$ref": "#/definitions/FinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] }, "patch": { "tags": [ "WorkflowFinal" ], "summary": "Change name/description of a particular final workflow", "description": "Change name/description of a particular final workflow", "operationId": "updateFinalWorkflowGraphName", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/UpdateFinalWorkflowName" } ], "responses": { "200": { "description": "The renamed workflow with all contained graph versions.", "schema": { "$ref": "#/definitions/FinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflows/final/graphs/{graph-id}/{version}": { "get": { "tags": [ "WorkflowFinal" ], "summary": "Get details of a particular final workflow version", "description": "Get details of a particular final workflow version", "operationId": "getFinalWorkflowGraph", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/WorkflowGraphVersion" }, { "name": "acct_id", "in": "query", "description": "Account which owns the final workflow", "required": false, "type": "string", "format": "uuid" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/VersionInFinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "WorkflowFinal" ], "summary": "Delete a particular final workflow", "description": "Delete a particular final workflow", "operationId": "deleteFinalWorkflowGraph", "x-auth-resource": "ApprovalAuth", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/WorkflowGraphVersion" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] }, "patch": { "summary": "Update the final workflow graph's runtime (reference to ComputeCluster).", "tags": [ "WorkflowFinal" ], "operationId": "updateFinalWorkflowGraphRuntime", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/WorkflowGraphVersion" }, { "$ref": "#/parameters/UpdateWorkflowVersionRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/VersionInFinalWorkflow" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflows/draft/graphs": { "get": { "summary": "Search all workflow draft graphs", "tags": [ "Workflow" ], "operationId": "getAllWorkflowGraphs", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "name": "name", "in": "query", "description": "Draft workflow name", "required": false, "type": "string" }, { "name": "description", "in": "query", "description": "Draft workflow description.", "required": false, "type": "string" }, { "name": "all_search", "in": "query", "description": "Search on name or description.", "required": false, "type": "string" }, { "name": "parent_graph_id", "in": "query", "description": "The final workflow from which this draft was derived.", "required": false, "type": "string" }, { "name": "project", "in": "query", "description": "The workflow project.", "required": false, "type": "string" }, { "name": "filter", "in": "query", "description": "Filter to use for items, currently supports labels, syntax: {\"labels\":{\"key1\":\"value1\",\"key2\":\"value2\"}}", "required": false, "type": "string" }, { "name": "sort_by", "in": "query", "description": "Sort fields. In the format of key1:ASC,key2:DESC,key3:DESC", "required": false, "type": "string" }, { "name": "limit", "in": "query", "description": "Maximum numbers of images to return.", "required": false, "type": "integer" }, { "name": "offset", "in": "query", "description": "Number of images to skip from start.", "required": false, "type": "integer" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/GetAllWorkflowGraphsResponse" } } }, "security": [ { "bearerToken": [] } ] }, "post": { "summary": "Create a new workflow graph as a draft", "tags": [ "Workflow" ], "operationId": "createWorkflowGraph", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/CreateWorkflowGraphRequest" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/WorkflowGraph" } } }, "security": [ { "bearerToken": [] } ] } }, "/v1/workflows/draft/graphs/{graph-id}": { "get": { "tags": [ "Workflow" ], "summary": "Get details of a particular draft workflow", "description": "Get details of a particular draft workflow", "operationId": "getWorkflowGraph", "x-auth-resource": "Reader,Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "name": "acct_id", "in": "query", "description": "Account in which workflow belong", "required": false, "type": "string", "format": "uuid" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/WorkflowGraph" } } }, "security": [ { "bearerToken": [] } ] }, "put": { "summary": "Update a particular workflow graph.", "tags": [ "Workflow" ], "operationId": "updateWorkflowGraph", "x-auth-resource": "Writer,Manager,ActiveAccount", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" }, { "$ref": "#/parameters/UpdateWorkflowGraphRequest" }, { "name": "acct_id", "in": "query", "description": "Account in which workflow belong", "required": false, "type": "string", "format": "uuid" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/WorkflowGraph" } } }, "security": [ { "bearerToken": [] } ] }, "delete": { "tags": [ "Workflow" ], "summary": "Delete a particular draft workflow", "description": "Delete a particular draft workflow", "operationId": "deleteWorkflowGraph", "x-auth-resource": "Writer,Manager", "parameters": [ { "$ref": "#/parameters/WorkflowGraphId" } ], "responses": { "204": { "description": "Nothing is returned on success." } }, "security": [ { "bearerToken": [] } ] } } }, "definitions": { "CertificateDetails": { "type": "object", "required": [ "subject_name", "issuer_name", "valid_from", "valid_until", "cpusvn", "ias_quote_status" ], "properties": { "enclave_info": { "$ref": "#/definitions/EnclaveInfo" }, "subject_name": { "type": "string", "description": "Name of the subject." }, "issuer_name": { "type": "string", "description": "Name of the issuer." }, "valid_until": { "type": "integer", "format": "int64", "description": "Certificate expiry date." }, "valid_from": { "type": "integer", "format": "int64", "description": "Certificate valid from." }, "cpusvn": { "type": "string", "description": "CPUSVN, as a hex string." }, "ias_quote_status": { "type": "string", "description": "IAS quote status." } } }, "Zone": { "type": "object", "description": "Detailed info of a zone.", "required": [ "acct_id", "certificate", "zone_id", "name", "node_refresh_interval", "node_renewal_threshold", "node_enrollment" ], "properties": { "acct_id": { "type": "string", "format": "uuid", "description": "The account ID of the account that this zone belongs to." }, "node_enrollment": { "$ref": "#/definitions/NodeEnrollment" }, "certificate": { "type": "string", "description": "Zone certificate (PEM format)." }, "zone_id": { "type": "string", "format": "uuid", "description": "Zone Id." }, "name": { "type": "string", "description": "Zone name." }, "description": { "type": "string", "description": "Zone description." } } }, "ZoneCertificates": { "type": "object", "description": "Detailed info of all zone certificates.", "required": [ "current_certificate", "previous_certificates" ], "properties": { "current_certificate": { "type": "string", "description": "Current Zone certificate (PEM format)." }, "next_certificate": { "type": "string", "description": "New Zone certificate (PEM format)." }, "previous_certificates": { "items": { "type": "string" }, "type": "array", "description": "Old Zone certificates (PEM format)." } } }, "ZoneCertificateCreateResponse": { "type": "object", "description": "Detailed info of all zone certificates.", "required": [ "next_certificate" ], "properties": { "next_certificate": { "type": "string", "description": "New Zone certificate (PEM format)." } } }, "Build": { "type": "object", "description": "Detailed info of an application image.", "required": [ "status" ], "properties": { "build_id": { "type": "string", "format": "uuid", "description": "Image Id." }, "docker_info": { "$ref": "#/definitions/DockerInfo" }, "created_at": { "type": "integer", "format": "int64", "description": "Timestamp of image addition to the system (number of seconds since epoch)." }, "updated_at": { "type": "integer", "format": "int64", "description": "Timestamp of when the image was updated (number of seconds since epoch)." }, "app_id": { "type": "string", "format": "uuid", "description": "App Id." }, "app_name": { "type": "string", "description": "App name." }, "status": { "$ref": "#/definitions/BuildStatus" }, "deployment_status": { "$ref": "#/definitions/BuildDeploymentStatus" }, "enclave_info": { "$ref": "#/definitions/EnclaveInfo" }, "attributes": { "type": "object", "description": "Image attributes", "additionalProperties": { "$ref": "#/definitions/ImageAttributes" } }, "app_description": { "type": "string", "description": "App Description." }, "mem_size": { "type": "integer", "format": "int64", "description": "Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Threads required for the image." }, "advanced_settings": { "$ref": "#/definitions/AdvancedSettings" }, "build_name": { "type": "string", "description": "image name if curated app." }, "pending_task_id": { "type": "string", "format": "uuid", "description": "UUID of pending build whitelist task for the build" }, "configs": { "type": "object", "description": "Application configurations attached to the image.", "additionalProperties": { "type": "object", "x-nullable": true } }, "marketplace_build_id": { "type": "string", "format": "uuid", "description": "Id of the corresponding marketplace listing." }, "launch_hint": { "$ref": "#/definitions/LaunchHint" }, "enable_overlay_filesystem_persistence": { "type": "boolean", "description": "Flag indicating if file persistence is enabled. This is only for Nitro Enclaves." }, "group_id": { "type": "string", "format": "uuid", "description": "Group Id" } } }, "GetAllBuildDeploymentsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/AppNodeInfo" } } } }, "EnclaveInfo": { "type": "object", "description": "Info on a application enclave.", "required": [ "mrenclave", "mrsigner", "isvsvn", "isvprodid" ], "properties": { "mrenclave": { "type": "string", "description": "mrenclave of an image, as a hex string." }, "mrsigner": { "type": "string", "description": "mrsigner of an image, as a hex string." }, "isvprodid": { "type": "integer", "format": "int32", "description": "ISV Product Id." }, "isvsvn": { "type": "integer", "format": "int32", "description": "ISV Security Version Number." } } }, "BuildStatus": { "type": "object", "required": [ "status", "status_updated_at" ], "properties": { "status": { "$ref": "#/definitions/BuildStatusType" }, "status_updated_at": { "type": "integer", "format": "int64", "description": "Time since the status change." } } }, "BuildStatusType": { "type": "string", "description": "Status string for the image.", "enum": [ "REJECTED", "WHITELISTED", "PENDING" ] }, "BuildDeploymentStatus": { "type": "object", "required": [ "status", "status_updated_at" ], "properties": { "status": { "$ref": "#/definitions/BuildDeploymentStatusType" }, "status_updated_at": { "type": "integer", "format": "int64", "description": "The time when the deployment status changed." } } }, "BuildDeploymentStatusType": { "type": "string", "description": "Status string for the image deployment.", "enum": [ "DEPLOYED", "UNDEPLOYED" ] }, "GetAllBuildsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/Build" } } } }, "GetUserAccountsResponse": { "type": "object", "description": "Application configurations attached to the image.", "additionalProperties": { "$ref": "#/definitions/UserAccountInfo" } }, "CreateBuildRequest": { "type": "object", "properties": { "docker_info": { "$ref": "#/definitions/DockerInfo" }, "mrenclave": { "type": "string", "description": "mrenclave of the image." }, "mrsigner": { "type": "string", "description": "mrsigner of the image." }, "isvprodid": { "type": "integer", "format": "int32", "description": "Isv Product Id of the image." }, "isvsvn": { "type": "integer", "format": "int32", "description": "ISV Security Version Number of the image." }, "app_id": { "type": "string", "format": "uuid", "description": "App id of the image." }, "app_name": { "type": "string", "description": "App name of the image." }, "mem_size": { "type": "integer", "format": "int64", "description": "Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Threads required for the image." }, "attributes": { "type": "object", "description": "Image attributes", "additionalProperties": { "$ref": "#/definitions/ImageAttributes" } }, "advanced_settings": { "$ref": "#/definitions/AdvancedSettings" }, "launch_hint": { "$ref": "#/definitions/LaunchHint" }, "enable_overlay_filesystem_persistence": { "type": "boolean", "default": false, "description": "Flag to enable file persistence, off by default. This is only for use with Nitro Enclaves." }, "group_id": { "type": "string", "format": "uuid", "description": "In case of curated app, group_id may be passed so that we can create an app and build in the particular group." } } }, "ConvertAppBuildRequest": { "type": "object", "required": [ "app_id" ], "properties": { "app_id": { "type": "string", "format": "uuid", "description": "App id of the image." }, "docker_version": { "type": "string", "description": "Common Image docker version for both input and output." }, "input_docker_version": { "type": "string", "description": "Input Image docker version." }, "output_docker_version": { "type": "string", "description": "Output Image docker version." }, "inputAuthConfig": { "$ref": "#/definitions/AuthConfig" }, "outputAuthConfig": { "$ref": "#/definitions/AuthConfig" }, "authConfig": { "$ref": "#/definitions/AuthConfig" }, "debug": { "type": "boolean", "description": "Enables debug logging from EnclaveOS." }, "memSize": { "type": "integer", "format": "int64", "description": "Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Threads required for the image." } } }, "SgxConversionRequest": { "type": "object", "required": [ "request", "sgx_options" ], "properties": { "request": { "$ref": "#/definitions/ImageConversionRequest", "description": "Conversion request information" }, "sgx_options": { "$ref": "#/definitions/SgxConversionRequestOptions", "description": "SGX conversion options" } } }, "NitroEnclavesConversionRequest": { "type": "object", "required": [ "request", "nitro_enclaves_options" ], "properties": { "request": { "$ref": "#/definitions/ImageConversionRequest", "description": "Conversion request information" }, "nitro_enclaves_options": { "$ref": "#/definitions/NitroEnclavesConversionRequestOptions", "description": "Nitro enclaves conversion options" } } }, "AciConversionRequest": { "type": "object", "required": [ "app_id", "input_image", "aci_options" ], "properties": { "app_id": { "type": "string", "format": "uuid", "description": "App id of the image." }, "input_image": { "$ref": "#/definitions/ConversionRequestImageInfo", "description": "Input docker image name" }, "converter_options": { "$ref": "#/definitions/ConverterOptions", "description": "Converter options" }, "aci_options": { "$ref": "#/definitions/AciConversionRequestOptions", "description": "ACI conversion options" } } }, "ImageConversionRequest": { "type": "object", "required": [ "app_id", "input_image", "output_image", "converter_options" ], "properties": { "app_id": { "type": "string", "format": "uuid", "description": "App id of the image." }, "input_image": { "$ref": "#/definitions/ConversionRequestImageInfo", "description": "Input docker image name" }, "output_image": { "$ref": "#/definitions/ConversionRequestImageInfo", "description": "Output docker image name" }, "converter_options": { "$ref": "#/definitions/ConverterOptions", "description": "Converter options" } } }, "ConversionRequestImageInfo": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Docker image name" }, "auth_config": { "$ref": "#/definitions/AuthConfig", "description": "Docker credentials" } } }, "ConverterOptions": { "type": "object", "properties": { "add_ccm_ca_certificates": { "type": "boolean", "description": "Adds CCM CA certificates into the application." }, "allow_cmdline_args": { "type": "boolean", "description": "Allow command line arguments." }, "debug": { "type": "boolean", "description": "Enables debug logging from EnclaveOS" }, "entrypoint": { "type": "array", "items": { "type": "string" }, "description": "Override the entrypoint of the original container" }, "entrypoint_args": { "type": "array", "items": { "type": "string" }, "description": "Override additional arguments to the container entrypoint" }, "env_vars": { "description": "List of manifest environment variables.\nFor ACI, these fixed values become part of the security policy.\n", "items": { "type": "string" }, "type": "array" }, "mutable_env_vars": { "description": "List of mutable environment variable default values.\nFor ACI, these become deployment template parameters.\n", "items": { "type": "string" }, "type": "array" }, "java_mode": { "type": "string", "description": "Type of the Java JVM used" } } }, "SgxConversionRequestOptions": { "type": "object", "required": [ "isvprodid", "mem_size", "threads" ], "properties": { "isvsvn": { "type": "integer", "format": "int64", "description": "Isvsvn" }, "isvprodid": { "type": "integer", "format": "int64", "description": "Isvprodid" }, "mem_size": { "type": "integer", "format": "int64", "description": "Enclave memory size in MBs" }, "threads": { "type": "integer", "format": "int32", "description": "Threads" } } }, "NitroEnclavesConversionRequestOptions": { "type": "object", "properties": { "cpu_count": { "type": "integer", "format": "int32", "description": "CPU count" }, "mem_size": { "type": "integer", "format": "int64", "description": "Enclave memory size in MBs" }, "enable_overlay_filesystem_persistence": { "type": "boolean", "default": true, "description": "Flag to enable file persistence, on by default." } } }, "AciConversionRequestOptions": { "type": "object", "properties": { "cpu_count": { "type": "integer", "format": "int32", "minimum": 1, "maximum": 65535, "default": 1, "description": "Number of cores" }, "gb_mem": { "type": "number", "format": "double", "minimum": 0, "exclusiveMinimum": true, "default": 1, "description": "Container memory size in GBs (1,000,000,000 bytes)" }, "wait_for_agent": { "type": "boolean", "default": true, "description": "Inserts a loop waiting for /opt/fortanix/agent.ready into your application's entrypoint; ensures app startup occurs after confidential compute verifications. Don't touch this unless there's good reason.\n" } } }, "ConverterSvcSgxConversionRequest": { "type": "object", "required": [ "request", "sgx_options" ], "properties": { "request": { "$ref": "#/definitions/ConverterSvcConversionRequest", "description": "Conversion request information" }, "sgx_options": { "$ref": "#/definitions/ConverterSvcSgxConversionRequestOptions", "description": "SGX conversion options" } } }, "ConverterSvcNitroEnclavesConversionRequest": { "type": "object", "required": [ "request", "nitro_enclaves_options" ], "properties": { "request": { "$ref": "#/definitions/ConverterSvcConversionRequest", "description": "Conversion request information" }, "nitro_enclaves_options": { "$ref": "#/definitions/ConverterSvcNitroEnclavesConversionRequestOptions", "description": "Nitro enclaves conversion options" } } }, "ConverterSvcAciConversionRequest": { "type": "object", "required": [ "request", "aci_options" ], "properties": { "request": { "$ref": "#/definitions/ConverterSvcConversionRequest", "description": "Conversion request information" }, "aci_options": { "$ref": "#/definitions/AciConversionRequestOptions", "description": "ACI conversion options" } } }, "ConverterSvcConversionRequest": { "type": "object", "required": [ "input_image", "output_image", "converter_options" ], "properties": { "input_image": { "$ref": "#/definitions/ConversionRequestImageInfo", "description": "Input docker image name" }, "output_image": { "$ref": "#/definitions/ConversionRequestImageInfo", "description": "Output docker image name" }, "converter_options": { "$ref": "#/definitions/ConverterSvcConverterOptions", "description": "Converter options" } } }, "ConverterSvcConverterOptions": { "type": "object", "properties": { "allow_cmdline_args": { "type": "boolean", "description": "Allow command line arguments." }, "allow_docker_pull_failure": { "type": "boolean", "description": "Allow Docker Pull failure." }, "certificates": { "type": "array", "items": { "$ref": "#/definitions/CertificateConfig" } }, "debug": { "type": "boolean", "description": "Enables debug logging from EnclaveOS" }, "entrypoint": { "type": "array", "items": { "type": "string" }, "description": "Override the entrypoint of the original container" }, "entrypoint_args": { "type": "array", "items": { "type": "string" }, "description": "Override additional arguments to the container entrypoint" }, "push_converted_image": { "type": "boolean", "description": "Enables Pushing Converted Image" }, "env_vars": { "description": "List of manifest environment variables.\nFor ACI, these fixed values become part of the security policy.\n", "items": { "type": "string" }, "type": "array" }, "mutable_env_vars": { "description": "List of mutable environment variable default values.\nFor ACI, these become deployment template parameters.\n", "items": { "type": "string" }, "type": "array" }, "java_mode": { "type": "string", "description": "Type of the Java JVM used" } } }, "ConverterSvcSgxConversionRequestOptions": { "type": "object", "properties": { "isvsvn": { "type": "integer", "format": "int64", "description": "Isvsvn" }, "isvprodid": { "type": "integer", "format": "int64", "description": "Isvprodid" }, "mem_size": { "type": "string", "description": "Enclave memory size" }, "threads": { "type": "integer", "format": "int32", "description": "Threads" }, "core_dump_pattern": { "type": "string", "description": "Template for generating debug core dump file paths" }, "log_file_path": { "type": "string", "description": "Path for EnclaveOS log file" }, "manifest_options": { "type": "object", "additionalProperties": true, "description": "Add additional options to EnclaveOS manifest file" }, "signing_key": { "$ref": "#/definitions/SigningKeyConfig" }, "encrypted_dirs": { "type": "array", "items": { "type": "string" }, "description": "List of read-write files and/or directories which are encrypted using the enclave sealing key\nDefault encrypted directories - enclave-os protects the content in these files by encrypting them using the enclave sealing key. Anyone is allowed to read from or write to these files but only the enclave application can see it's contents in plain text.\n - /tmp\n - /run\n - /ftx-efs\n - /opt/fortanix/enclave-os/app-config/rw\nTips while debugging -> The default encrypted directories visible to the guest application as /tmp, /run and /ftx-efs are available in the container filesystem at /opt/fortanix/enclave-os/default-efs-dirs/.\n" }, "ro_dirs": { "description": "List of read only directories\nDefault read-only directories - enclave-os protects the integrity of these files and hence only allows these files to be read and not modified.\n - /\n - /opt/fortanix/enclave-os/app-config/ro\n", "items": { "type": "string" }, "type": "array" }, "rw_dirs": { "description": "List of read-write files and/or directories\nDefault read-write directories - enclave-os doesn't provide any security measures for these files and anyone is allowed to read from or write to these files.\n - /etc/hosts\n - /etc/resolv.conf\n - /etc/hostname\n", "items": { "type": "string" }, "type": "array" } } }, "ConverterSvcNitroEnclavesConversionRequestOptions": { "type": "object", "properties": { "cpu_count": { "type": "integer", "format": "int32", "description": "CPU count" }, "mem_size": { "type": "string", "description": "Enclave memory size" }, "enable_overlay_filesystem_persistence": { "type": "boolean", "default": true, "description": "Flag to enable file persistence, on by default." } } }, "ConverterSvcSgxConversionResponse": { "type": "object", "required": [ "converted_image", "config" ], "properties": { "converted_image": { "$ref": "#/definitions/ConverterSvcConvertedImageInfo", "description": "Converted Image" }, "config": { "$ref": "#/definitions/ConverterSvcSgxConfig", "description": "Sgx Configuration in converted image" } } }, "ConverterSvcNitroEnclavesConversionResponse": { "type": "object", "required": [ "converted_image", "config" ], "properties": { "converted_image": { "$ref": "#/definitions/ConverterSvcConvertedImageInfo", "description": "Converted Image" }, "config": { "$ref": "#/definitions/ConverterSvcNitroEnclavesConfig", "description": "Sgx Configuration in converted image" } } }, "ConverterSvcAciConversionResponse": { "type": "object", "required": [ "converted_image", "config" ], "properties": { "converted_image": { "$ref": "#/definitions/ConverterSvcConvertedImageInfo", "description": "Converted Image" }, "config": { "$ref": "#/definitions/ConverterSvcAciConfig", "description": "ACI Configuration in converted image" } } }, "ConverterSvcConvertedImageInfo": { "type": "object", "required": [ "name", "sha", "size" ], "properties": { "name": { "type": "string", "description": "Converted image name (with tag)" }, "sha": { "type": "string", "description": "Converted image sha" }, "size": { "type": "integer", "format": "int64", "description": "Converted image size" } } }, "ConverterSvcSgxConfig": { "type": "object", "required": [ "isvprodid", "isvsvn", "measurements", "mrsigner" ], "properties": { "isvprodid": { "type": "integer", "format": "int32" }, "isvsvn": { "type": "integer", "format": "int32" }, "measurements": { "type": "object", "description": "Sgx Measurements", "additionalProperties": { "$ref": "#/definitions/SgxAttributes" } }, "mrsigner": { "type": "string" } } }, "ConverterSvcNitroEnclavesConfig": { "type": "object", "required": [ "measurements", "pcr8" ], "properties": { "measurements": { "type": "object", "description": "Nitro enclave Measurements", "additionalProperties": { "$ref": "#/definitions/NitroEnclaveAttributes" } }, "pcr8": { "type": "string" } } }, "ConverterSvcAciConfig": { "type": "object", "required": [ "caci_template", "exposed_ports" ], "properties": { "caci_template": { "type": "string", "description": "Confidential ACI deployment template" }, "exposed_ports": { "description": "List of ports exposed by the Docker image.", "items": { "$ref": "#/definitions/DockerNetworkPort" }, "type": "array" } } }, "SignupRequest": { "type": "object", "required": [ "user_email", "user_password" ], "properties": { "user_email": { "type": "string", "description": "User's email address." }, "user_password": { "type": "string", "format": "password", "description": "The password to assign to this user in Confidential Computing Manager." }, "first_name": { "type": "string" }, "last_name": { "type": "string" }, "recaptcha_response": { "type": "string" } } }, "InviteUserRequest": { "type": "object", "required": [ "user_email", "roles" ], "properties": { "user_email": { "type": "string", "description": "User's email address." }, "roles": { "type": "array", "items": { "$ref": "#/definitions/AccessRoles" } }, "first_name": { "type": "string" }, "last_name": { "type": "string" } } }, "UpdateUserRequest": { "type": "object", "properties": { "first_name": { "type": "string", "description": "First name." }, "last_name": { "type": "string", "description": "Last name." }, "roles": { "type": "array", "items": { "$ref": "#/definitions/AccessRoles" } }, "user_account_status": { "$ref": "#/definitions/UserAccountStatus" }, "user_email": { "type": "string", "description": "User's new email address." } } }, "AccessRoles": { "type": "string", "description": "Roles of a user.", "enum": [ "READER", "WRITER", "MANAGER" ] }, "Node": { "type": "object", "required": [ "name", "node_id", "acct_id", "status", "apps", "sgx_info" ], "properties": { "name": { "type": "string", "description": "Name of the compute node." }, "description": { "type": "string", "description": "Description of the compute node." }, "acct_id": { "type": "string", "format": "uuid", "description": "The account ID of the account that this compute node belongs to." }, "ipaddress": { "type": "string", "description": "IP Address of the compute node." }, "node_id": { "type": "string", "format": "uuid", "description": "UUID for the compute node." }, "zone_id": { "type": "string", "format": "uuid", "description": "Zone ID of the zone this compute node belongs to." }, "status": { "$ref": "#/definitions/NodeStatus" }, "attested_at": { "type": "integer", "format": "int64", "description": "The compute node attestation date." }, "certificate": { "type": "string", "description": "The compute node attestation certificate" }, "apps": { "type": "array", "description": "Apps associated with the compute node.", "items": { "$ref": "#/definitions/AppNodeInfo" } }, "sgx_info": { "$ref": "#/definitions/SgxInfo" }, "sys_info": { "$ref": "#/definitions/NodeSysInfo" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "platform": { "type": "string", "description": "Platform information of the compute node." }, "attestation_type": { "type": "string", "description": "Node Attestation type (DCAP, NITRO_ENCLAVE or AMD_SEV_SNP)." }, "error_report": { "$ref": "#/definitions/NodeErrorReport" } } }, "NodeSysInfo": { "type": "object", "required": [ "epc_size", "num_cpu_cores" ], "description": "System Related details of a compute node.", "properties": { "epc_size": { "type": "integer", "format": "int64", "x-nullable": true, "description": "Size of EPC of the compute node in bytes." }, "num_cpu_cores": { "x-aliases": [ "num_cpu" ], "type": "integer", "format": "int32", "description": "Number of CPU cores of the compute node." }, "total_memory": { "type": "integer", "format": "int64", "x-nullable": true, "description": "Total available memory of the compute node in bytes. Populated for TDX nodes; null for SGX and other node types." } } }, "SgxInfo": { "type": "object", "description": "SGX Related details of a compute node.", "properties": { "version": { "type": "string", "description": "Version of the Intel SGX Platform Software running on the compute node." } } }, "GetAllNodesResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/Node" } } } }, "GetAllUsersResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/User" } } } }, "NodeStatus": { "type": "object", "required": [ "status", "created_at", "status_updated_at" ], "properties": { "status": { "$ref": "#/definitions/NodeStatusType" }, "created_at": { "type": "integer", "format": "int64", "description": "Compute node creation time." }, "status_updated_at": { "type": "integer", "format": "int64", "description": "Time since the status changed." }, "last_seen_at": { "type": "integer", "format": "int64", "description": "Time the node was last seen." }, "last_seen_version": { "type": "string", "description": "Version of the node when it was last seen." } } }, "NodeStatusType": { "type": "string", "description": "Status string for the compute node.", "enum": [ "RUNNING", "STOPPED", "FAILED", "DEACTIVATED", "INPROGRESS", "PROVISIONED" ] }, "NodeProvisionCertRequest": { "type": "object", "required": [ "cert" ], "properties": { "cert": { "type": "string", "description": "PEM encoded certificate." } } }, "NodeProvisionRequest": { "type": "object", "required": [ "name", "ipaddress", "sgx_version" ], "properties": { "name": { "type": "string", "description": "Name of the compute node." }, "description": { "type": "string", "description": "Description of the compute node." }, "ipaddress": { "type": "string", "description": "IP Address of the compute node." }, "sys_info": { "$ref": "#/definitions/NodeSysInfo" }, "sgx_version": { "type": "string", "description": "Version of the Intel SGX Platform Software running on the compute node." }, "attestation_request": { "$ref": "#/definitions/AttestationRequest" }, "error_report": { "$ref": "#/definitions/NodeErrorReport" } } }, "NodeErrorReport": { "type": "object", "required": [ "name", "message" ], "properties": { "message": { "type": "string", "description": "Error message containing the reason why node agent failed." }, "name": { "$ref": "#/definitions/NodeProvisionErrorType" } } }, "NodeProvisionErrorType": { "type": "string", "description": "Node agent attestation error type.", "enum": [ "AESMD_FAILURE", "QUOTE_GENERATION_ERROR", "QUOTE_VERIFICATION_ERROR", "GROUP_OUT_OF_DATE", "SIGRL_VERSION_MISMATCH", "CONFIGURATION_NEEDED", "QUOTE_REVOKED", "SIGNATURE_INVALID", "DCAP_ERROR", "CPUSVN_OUT_OF_DATE", "PSW_OUT_OF_DATE", "BAD_PSW", "BAD DATA" ] }, "NodeStatusResponse": { "type": "object", "required": [ "node_refresh_interval", "node_renewal_threshold" ], "properties": { "node_refresh_interval": { "type": "integer", "format": "int64", "description": "Interval between node agent checkins with the backend, in seconds." }, "node_renewal_threshold": { "type": "integer", "format": "int32", "description": "The node agent requests certificate renewal when the certificate's remaining validity is less than this percentage of the original validity." } } }, "NodeUpdateRequest": { "type": "object", "required": [ "patch" ], "properties": { "patch": { "$ref": "#/definitions/PatchRequest" } } }, "AttestationRequest": { "type": "object", "required": [ "csr" ], "properties": { "ias_quote": { "type": "string", "format": "binary", "description": "IAS (EPID/DCAP) Quote report bytes." }, "csr": { "type": "string", "description": "Certificate Signing Request bytes." }, "attestation_type": { "type": "string", "description": "Node Attestation type (DCAP, NITRO_ENCLAVE, AMD_SEV_SNP, BAREMETAL_AMD_SEV_SNP or BAREMETAL_TDX)." } } }, "Certificate": { "description": "A certificate request or issued certificate.", "type": "object", "properties": { "certificate_id": { "type": "string", "format": "uuid", "description": "Certificate ID." }, "status": { "$ref": "#/definitions/CertificateStatusType" }, "csr": { "type": "string", "description": "The certificate signing request." }, "certificate": { "type": "string", "description": "The certificate itself, if issued." }, "node_id": { "type": "string", "format": "uuid", "description": "The node relevant to this certificate, if known." }, "app_id": { "type": "string", "format": "uuid", "description": "The app relevant to this certificate, if known." }, "build_id": { "type": "string", "format": "uuid", "description": "The build relevant to this certificate, if known." } } }, "CertificateStatusType": { "type": "string", "description": "Certificate status.", "enum": [ "PENDING", "REJECTED", "ISSUED", "REVOKED", "EXPIRED" ] }, "App": { "type": "object", "required": [ "name", "input_image_name", "output_image_name", "isvprodid", "isvsvn", "mem_size", "threads", "app_id", "default_build_settings" ], "properties": { "created_at": { "type": "integer", "format": "int64", "description": "Timestamp of image addition to the system." }, "updated_at": { "type": "integer", "format": "int64", "description": "Timestamp of image updation to the system." }, "name": { "type": "string", "description": "Name of the app." }, "description": { "type": "string", "description": "Description of the app." }, "app_id": { "type": "string", "format": "uuid", "description": "UUID for the app." }, "input_image_name": { "type": "string", "description": "Input image name of images for apps." }, "output_image_name": { "type": "string", "description": "Output image name of images for apps." }, "isvprodid": { "type": "integer", "format": "int32", "description": "Deprecated. ISV Product Id." }, "isvsvn": { "type": "integer", "format": "int32", "description": "Deprecated. ISV Security Version Number." }, "mem_size": { "type": "integer", "format": "int64", "description": "Deprecated. Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Deprecated. Threads required for the image." }, "default_build_settings": { "type": "object", "description": "Default build settings", "$ref": "#/definitions/DefaultBuildSettings" }, "allowed_domains": { "description": "A set of domains requested for this application; need to be approved.", "type": "array", "items": { "type": "string" } }, "whitelisted_domains": { "description": "A set of domains approved for usage by this application.", "type": "array", "items": { "type": "string" } }, "nodes": { "type": "array", "items": { "$ref": "#/definitions/AppNodeInfo" } }, "advanced_settings": { "$ref": "#/definitions/AdvancedSettings" }, "pending_task_id": { "type": "string", "format": "uuid", "description": "UUID of pending domain whitelist task for the app." }, "domains_added": { "type": "array", "items": { "type": "string" } }, "domains_removed": { "type": "array", "items": { "type": "string" } }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "custom_metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "certificate_policy": { "$ref": "#/definitions/CertificateIssuancePolicy" }, "signers": { "type": "array", "items": { "$ref": "#/definitions/ApplicationSigner" } }, "marketplace_app_id": { "type": "string", "format": "uuid", "description": "Id of the corresponding marketplace listing." }, "group_id": { "type": "string", "format": "uuid", "description": "Group Id" } } }, "GetAllAppsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/App" } } } }, "LabelsCount": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/LabelCount" } } } }, "LabelCount": { "type": "object", "required": [ "key", "value", "count" ], "properties": { "key": { "type": "string" }, "value": { "type": "string" }, "count": { "type": "integer", "format": "int32" } } }, "AppNodeInfo": { "type": "object", "required": [ "certificate", "created_at", "node_id" ], "description": "Detailed info of an app running on a compute node.", "properties": { "certificate": { "$ref": "#/definitions/Certificate" }, "created_at": { "type": "integer", "format": "int64", "description": "App compute node creation time." }, "node_id": { "type": "string", "format": "uuid", "description": "Compute Node Id." }, "node_name": { "type": "string", "description": "Compute Node Name." }, "status": { "$ref": "#/definitions/AppStatus" }, "build_info": { "$ref": "#/definitions/Build" }, "message_count": { "type": "integer", "format": "int32", "description": "App heartbeat message count." }, "key_id": { "type": "string", "description": "Key Id for app heartbeat." }, "is_debug": { "type": "boolean", "description": "App running in debug mode or not." } } }, "AppStatus": { "type": "object", "description": "Run status info of an app for a compute node.", "properties": { "status": { "$ref": "#/definitions/AppStatusType" }, "status_updated_at": { "type": "integer", "format": "int64", "description": "Time since the status change." }, "attested_at": { "type": "integer", "format": "int64", "description": "The app attestation date." } } }, "AppStatusType": { "type": "string", "description": "Status string for the app on a compute node.", "enum": [ "RUNNING", "STOPPED", "UNKNOWN" ] }, "AppBodyUpdateRequest": { "type": "object", "description": "Request to update an app.", "properties": { "description": { "type": "string", "description": "Description of the app." }, "input_image_name": { "type": "string", "description": "Input image name of images for apps." }, "output_image_name": { "type": "string", "description": "Output image name of images for apps." }, "isvsvn": { "type": "integer", "format": "int32", "description": "ISV Security Version Number." }, "isvprodid": { "type": "integer", "format": "int32", "description": "ISV Product Id." }, "mem_size": { "type": "integer", "format": "int64", "description": "Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Threads required for the image." }, "default_build_settings": { "type": "object", "description": "Default build settings", "$ref": "#/definitions/DefaultBuildSettings" }, "allowed_domains": { "description": "A set of domains requested for this application; need to be approved.", "type": "array", "items": { "type": "string" } }, "advanced_settings": { "$ref": "#/definitions/AdvancedSettings" }, "labels": { "$ref": "#/definitions/PatchRequest" }, "custom_metadata": { "$ref": "#/definitions/PatchRequest" }, "certificate_policy": { "$ref": "#/definitions/CertificateIssuancePolicy" }, "signers": { "type": "array", "items": { "$ref": "#/definitions/ApplicationSigner" } }, "group_id": { "type": "string", "format": "uuid" } } }, "AppRequest": { "type": "object", "description": "Request to create an app.", "required": [ "name", "input_image_name", "output_image_name" ], "properties": { "name": { "type": "string", "description": "Name of the app." }, "description": { "type": "string", "description": "Description of the app." }, "input_image_name": { "type": "string", "description": "Input image name of images for apps." }, "output_image_name": { "type": "string", "description": "Output image name of images for apps." }, "isvprodid": { "type": "integer", "format": "int32", "description": "Deprecated. Use default_build_settings instead. Isv Product Id." }, "isvsvn": { "type": "integer", "format": "int32", "description": "Deprecated. Use default_build_settings instead. ISV Security Version Number." }, "mem_size": { "type": "integer", "format": "int64", "description": "Deprecated. Use default_build_settings instead. Memory size required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Deprecated. Use default_build_settings instead. Threads req for the image." }, "default_build_settings": { "type": "object", "description": "Default build settings", "$ref": "#/definitions/DefaultBuildSettings" }, "allowed_domains": { "description": "A set of domains requested for this application; need to be approved.", "type": "array", "items": { "type": "string" } }, "advanced_settings": { "$ref": "#/definitions/AdvancedSettings" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "custom_metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "certificate_policy": { "$ref": "#/definitions/CertificateIssuancePolicy" }, "signers": { "type": "array", "items": { "$ref": "#/definitions/ApplicationSigner" } }, "group_id": { "type": "string", "format": "uuid", "description": "Group Id" } } }, "DefaultBuildSettings": { "type": "object", "description": "DefaultBuildSettings for builds", "properties": { "sgx": { "$ref": "#/definitions/DefaultSgxBuildSettings" }, "nitro_enclaves": { "$ref": "#/definitions/DefaultNitroEnclavesBuildSettings" } } }, "DefaultSgxBuildSettings": { "type": "object", "description": "Default build settings for SGX/SGX2 builds", "properties": { "isvprodid": { "type": "integer", "format": "int32", "description": "ISV Product Id." }, "mem_size": { "type": "integer", "format": "int64", "description": "Memory size (in MBs) required for the image." }, "threads": { "type": "integer", "format": "int32", "description": "Threads required for the image." } } }, "DefaultNitroEnclavesBuildSettings": { "type": "object", "description": "Default build settings for Nitro Enclave builds", "properties": { "cpu_count": { "type": "integer", "format": "int32", "description": "CPU count" }, "mem_size": { "type": "integer", "format": "int64", "description": "Enclave memory size in MBs" }, "enable_overlay_filesystem_persistence": { "type": "boolean", "default": true, "description": "Flag to enable file persistence, on by default." } } }, "PatchRequest": { "type": "array", "items": { "$ref": "#/definitions/PatchDocument" } }, "PatchDocument": { "type": "object", "description": "A JSONPatch document as defined by RFC 6902. The patch operation is subset of what is supported by RFC 6902.", "required": [ "op", "path" ], "properties": { "op": { "$ref": "#/definitions/PatchOperation" }, "path": { "type": "string", "description": "It is JSON pointer indicating a field to be updated" }, "value": { "type": "object", "description": "It is the value to be used for the field as indicated by op and path" } } }, "PatchOperation": { "type": "string", "description": "The operation to be performed", "enum": [ "add", "remove", "replace" ] }, "AdvancedSettings": { "type": "object", "description": "Advanced settings for apps and images.", "properties": { "entrypoint": { "type": "array", "items": { "type": "string" }, "description": "Entrypoint for the container." }, "encryptedDirs": { "type": "array", "items": { "type": "string" }, "description": "List of read-write files and/or directories which are encrypted using the enclave sealing key\nDefault encrypted directories - enclave-os protects the content in these files by encrypting them using the enclave sealing key. Anyone is allowed to read from or write to these files but only the enclave application can see it's contents in plain text.\n - /tmp\n - /run\n - /ftx-efs\n - /opt/fortanix/enclave-os/app-config/rw\nTips while debugging -> The default encrypted directories visible to the guest application as /tmp, /run and /ftx-efs are available in the container filesystem at /opt/fortanix/enclave-os/default-efs-dirs/.\n" }, "certificate": { "$ref": "#/definitions/CertificateConfig" }, "java_runtime": { "$ref": "#/definitions/JavaRuntime", "description": "Java runtime mode." }, "rw_dirs": { "type": "array", "items": { "type": "string" }, "description": "List of read-write files and/or directories\nDefault read-write directories - enclave-os doesn't provide any security measures for these files and anyone is allowed to read from or write to these files.\n - /etc/hosts\n - /etc/resolv.conf\n - /etc/hostname\n" }, "allowCmdlineArgs": { "type": "boolean", "description": "Allow command line arguments converter flag for an image." }, "manifestEnv": { "type": "array", "items": { "type": "string" }, "description": "Environment variables that will be passed to the manifest file when the container is converted." }, "mutableEnv": { "type": "array", "items": { "type": "string" }, "description": "Environment variables with supplied default values, but that may be overridden at runtime.\n" } } }, "CertificateIssuancePolicy": { "type": "object", "required": [ "require_known_image", "require_known_signer" ], "properties": { "require_known_image": { "type": "boolean" }, "require_known_signer": { "type": "boolean" }, "require_known_node": { "type": "boolean", "default": true } } }, "ApplicationSigner": { "type": "object", "minProperties": 1, "maxProperties": 1, "properties": { "sgx": { "$ref": "#/definitions/SgxSigner" }, "nitro_enclave": { "$ref": "#/definitions/NitroEnclaveSigner" } } }, "SgxSigner": { "type": "object", "required": [ "mrsigner", "isvprodid" ], "properties": { "mrsigner": { "type": "string", "description": "mrsigner as a hex string." }, "isvprodid": { "type": "integer", "format": "int32", "description": "ISV Product Id." } } }, "NitroEnclaveSigner": { "type": "object", "required": [ "pcr8" ], "properties": { "pcr8": { "type": "string", "description": "The signer pcr as a hex string." } } }, "BaremetalAmdSevSnpSigner": { "type": "object", "required": [ "id_key_digest", "family_id", "image_id" ], "properties": { "family_id": { "type": "string", "description": "Guest family id as hex string" }, "image_id": { "type": "string", "description": "Guest image id as hex string" }, "id_key_digest": { "type": "string", "description": "Owner Id key Digest as hex string" } } }, "BaremetalTdxSigner": { "type": "object", "required": [ "mrsigner", "isvprodid" ], "properties": { "mrsigner": { "type": "string", "description": "mrsigner as a hex string." }, "isvprodid": { "type": "integer", "format": "int32", "description": "ISV Product Id." } } }, "EnclaveTypes": { "type": "string", "description": "Enclave types.", "enum": [ "sgx", "sgx2", "nitro_enclave", "aci", "secure_vm", "azure_cvm", "baremetal_tdx", "baremetal_amd_sev_snp" ] }, "SgxEnclaveFeatures": { "type": "string", "description": "SGX1/SGX2 enclave features.", "enum": [ "edmm" ] }, "AppUpdateRequest": { "type": "object", "description": "Request to update an app.", "required": [ "status" ], "properties": { "status": { "$ref": "#/definitions/AppStatusType" } } }, "RequesterInfo": { "required": [ "requester_type" ], "type": "object", "properties": { "user_id": { "type": "string", "format": "uuid", "description": "User Id." }, "user_name": { "type": "string", "description": "User Name." }, "app_id": { "type": "string", "format": "uuid", "description": "App Id." }, "app_name": { "type": "string", "description": "App Name." }, "requester_type": { "$ref": "#/definitions/RequesterType" } } }, "RequesterType": { "type": "string", "description": "Type of requester.", "enum": [ "USER", "APP", "SYSTEM" ] }, "JavaRuntime": { "type": "string", "description": "Java runtime mode for conversion.", "enum": [ "JAVA-ORACLE", "OPENJDK", "OPENJ9", "LIBERTY-JRE" ] }, "ApprovalStatus": { "type": "string", "description": "Approval status.", "enum": [ "APPROVED", "DENIED" ] }, "ApprovalInfo": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "type": "string", "format": "uuid", "description": "User Id." }, "user_name": { "type": "string", "description": "User Name." }, "status": { "$ref": "#/definitions/ApprovalStatus" }, "denial_reason": { "type": "string", "description": "Reason associated with the denial." } } }, "Task": { "type": "object", "required": [ "approvals", "task_id", "status", "task_type", "requester_info", "entity_id" ], "properties": { "task_id": { "type": "string", "format": "uuid", "description": "Task Id." }, "requester_info": { "$ref": "#/definitions/RequesterInfo" }, "entity_id": { "type": "string", "format": "uuid", "description": "app_id, build_id, node_id, cert_id are entity_id for app_domain_whitelisting, build_whitelisting, node_attestation and certificate_issuance respectively." }, "task_type": { "$ref": "#/definitions/TaskType" }, "status": { "$ref": "#/definitions/TaskStatus" }, "description": { "type": "string", "description": "Task details." }, "approvals": { "type": "array", "items": { "$ref": "#/definitions/ApprovalInfo" } }, "domains_added": { "type": "array", "items": { "type": "string" } }, "domains_removed": { "type": "array", "items": { "type": "string" } }, "group_id": { "type": "string", "format": "uuid", "description": "Group Id" } } }, "GetAllTasksResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/Task" } } } }, "TaskResult": { "type": "object", "properties": { "task_id": { "type": "string", "format": "uuid", "description": "Task Id" }, "certificate_id": { "type": "string", "format": "uuid", "description": "Certificate Id in case of certificate issuance task." }, "node_id": { "type": "string", "format": "uuid", "description": "Compute Node Id." }, "task_type": { "$ref": "#/definitions/TaskType" }, "task_status": { "$ref": "#/definitions/TaskStatus" }, "build_id": { "type": "string", "format": "uuid", "description": "Build Id." } } }, "TaskStatusType": { "type": "string", "description": "Status string for a task.", "enum": [ "INPROGRESS", "FAILED", "SUCCESS", "DENIED" ] }, "TaskStatus": { "required": [ "created_at", "status_updated_at", "status" ], "type": "object", "description": "Status info for a task.", "properties": { "created_at": { "type": "integer", "format": "int64", "description": "Task creation time" }, "status_updated_at": { "type": "integer", "format": "int64", "description": "Time since the status change." }, "status": { "$ref": "#/definitions/TaskStatusType" } } }, "TaskType": { "type": "string", "description": "The types of tasks supported.", "enum": [ "NODE_ATTESTATION", "CERTIFICATE_ISSUANCE", "BUILD_WHITELIST", "DOMAIN_WHITELIST" ] }, "TaskUpdateRequest": { "type": "object", "required": [ "status" ], "properties": { "status": { "$ref": "#/definitions/ApprovalStatus" }, "denial_reason": { "type": "string", "description": "Reason associated with the denial." } } }, "GetAuditLogsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/AuditLog" } } } }, "AuditLog": { "type": "object", "required": [ "log_id", "severity", "description", "timestamp", "action_type", "actor_type", "user_id", "user_name", "app_id", "app_name", "node_id", "node_name" ], "properties": { "log_id": { "type": "string", "format": "uuid", "description": "Log Entry Id." }, "zone_id": { "type": "string", "format": "uuid", "description": "Zone Id." }, "severity": { "$ref": "#/definitions/Event" }, "description": { "type": "string", "description": "Description of the event." }, "timestamp": { "type": "integer", "format": "int64", "description": "Event timestamp." }, "action_type": { "$ref": "#/definitions/EventActionType" }, "actor_type": { "$ref": "#/definitions/EventActorType" }, "user_id": { "type": "string", "format": "uuid", "description": "User Id, if actor is a user." }, "user_name": { "type": "string", "description": "User Name, if actor is a user." }, "app_id": { "type": "string", "format": "uuid", "description": "App Id, if actor is an app." }, "app_name": { "type": "string", "description": "App Name, if actor is an app." }, "node_id": { "type": "string", "format": "uuid", "description": "Compute Node Id, if associated with the event." }, "node_name": { "type": "string", "description": "Compute Node Name, if associated with the event." } } }, "EventActionType": { "type": "string", "description": "Event action type.", "enum": [ "NODE_STATUS", "APP_STATUS", "USER_APPROVAL", "NODE_ATTESTATION", "CERTIFICATE", "ADMIN", "APP_HEARTBEAT", "USER_AUTH" ] }, "EventActorType": { "type": "string", "description": "Event actor type.", "enum": [ "APP", "USER", "SYSTEM" ] }, "UserStatus": { "type": "string", "description": "Status of a user.", "enum": [ "ACTIVE", "PENDING", "DISABLED" ] }, "UserAccountStatus": { "type": "string", "description": "Status of an Account for a user.", "enum": [ "ACTIVE", "PENDING", "DISABLED" ] }, "UserAccountInfo": { "type": "object", "required": [ "roles", "status" ], "properties": { "roles": { "type": "array", "description": "Role of the current user in the account.", "items": { "$ref": "#/definitions/AccessRoles" } }, "status": { "$ref": "#/definitions/UserAccountStatus" } } }, "User": { "type": "object", "required": [ "user_id", "user_email" ], "properties": { "user_id": { "type": "string", "format": "uuid", "description": "User Id." }, "first_name": { "type": "string", "description": "First Name." }, "last_name": { "type": "string", "description": "Last Name." }, "user_email": { "type": "string", "description": "User Email." }, "last_logged_in_at": { "type": "integer", "format": "int64", "description": "Last login time of user." }, "created_at": { "type": "integer", "format": "int64", "description": "Creation time of user." }, "email_verified": { "type": "boolean", "description": "Whether this user's email has been verified." }, "status": { "$ref": "#/definitions/UserStatus" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/AccessRoles" } }, "user_account_status": { "$ref": "#/definitions/UserAccountStatus" }, "accepted_latest_terms_and_conditions": { "type": "boolean", "description": "Whether this user has accepted latest terms and conditions or not." }, "new_email": { "type": "string", "description": "User’s new email address before it has been confirmed." } } }, "VersionResponse": { "type": "object", "properties": { "version": { "type": "string", "description": "Manager Version." } } }, "ZoneJoinToken": { "type": "object", "properties": { "token": { "type": "string", "description": "Bearer token used to enroll compute nodes." } } }, "AuthResponse": { "type": "object", "properties": { "access_token": { "type": "string", "description": "Bearer token to be used to authenticate to other APIs." }, "session_info": { "$ref": "#/definitions/SessionInfo" } } }, "AuthDiscoverResponse": { "type": "object", "required": [ "auth_methods" ], "properties": { "auth_methods": { "type": "array", "items": { "$ref": "#/definitions/AuthMethod" } } } }, "AuthMethod": { "type": "object", "properties": { "password": { "type": "object" }, "oauth_code_grant": { "$ref": "#/definitions/OauthAuthCodeGrant" } } }, "OauthAuthCodeGrant": { "type": "object", "required": [ "name", "icon_url", "authorization_url", "client_id", "redirect_uri", "state", "idp_id" ], "properties": { "name": { "type": "string" }, "icon_url": { "type": "string" }, "authorization_url": { "type": "string" }, "client_id": { "type": "string" }, "redirect_uri": { "type": "string" }, "state": { "type": "string" }, "idp_id": { "type": "string", "format": "binary" }, "cluster_idp_id": { "type": "string" } } }, "AuthDiscoverRequest": { "type": "object", "properties": { "user_email": { "type": "string", "description": "User email." } } }, "RefreshResponse": { "type": "object", "required": [ "session_info" ], "properties": { "session_info": { "$ref": "#/definitions/SessionInfo" } } }, "SelectAccountResponse": { "type": "object", "required": [ "session_info" ], "properties": { "session_info": { "$ref": "#/definitions/SessionInfo" } } }, "NodeEnrollment": { "type": "object", "required": [ "attestation_enforcement_disabled_insecure" ], "properties": { "attestation_enforcement_disabled_insecure": { "type": "boolean" } } }, "AuthenticationConfig": { "type": "object", "properties": { "password": { "$ref": "#/definitions/AuthConfigPassword" }, "oauth": { "$ref": "#/definitions/AuthConfigOauth" }, "cluster_auth_ref": { "$ref": "#/definitions/AuthConfigRef" } } }, "AuthConfigRef": { "type": "object", "required": [ "target_id" ], "properties": { "target_id": { "type": "string" } } }, "AuthConfigPassword": { "type": "object", "description": "Configuration for password-based authentication.", "required": [ "require_2fa", "administrators_only" ], "properties": { "require_2fa": { "type": "boolean" }, "administrators_only": { "type": "boolean" } } }, "AuthConfigOauth": { "type": "object", "required": [ "idp_name", "idp_icon_url", "idp_authorization_endpoint", "idp_token_endpoint", "idp_requires_basic_auth", "tls", "client_id", "client_secret" ], "properties": { "idp_name": { "type": "string" }, "idp_icon_url": { "type": "string" }, "idp_authorization_endpoint": { "type": "string" }, "idp_token_endpoint": { "type": "string" }, "idp_requires_basic_auth": { "type": "boolean" }, "idp_userinfo_endpoint": { "type": "string" }, "tls": { "$ref": "#/definitions/TlsConfig" }, "client_id": { "type": "string" }, "client_secret": { "type": "string" } } }, "TlsConfig": { "type": "object", "properties": { "disabled": { "type": "object" }, "opportunistic": { "type": "object" }, "required": { "$ref": "#/definitions/TlsConfigRequired" } } }, "TlsConfigRequired": { "type": "object", "required": [ "validate_hostname", "ca" ], "properties": { "validate_hostname": { "type": "boolean" }, "client_key": { "type": "string", "format": "binary" }, "client_cert": { "type": "string", "format": "binary" }, "ca": { "$ref": "#/definitions/CaConfig" } } }, "CaConfig": { "type": "object", "properties": { "ca_set": { "$ref": "#/definitions/CaSet" }, "pinned": { "type": "array", "items": { "type": "string", "format": "binary" } } } }, "CaSet": { "type": "string", "enum": [ "GLOBAL_ROOTS" ] }, "AuthRequest": { "type": "object", "required": [ "oauth_auth_code" ], "properties": { "oauth_auth_code": { "$ref": "#/definitions/OauthCodeData" } } }, "OauthCodeData": { "type": "object", "required": [ "idp_id", "code" ], "properties": { "idp_id": { "type": "string", "format": "binary" }, "code": { "type": "string" }, "email": { "type": "string" } } }, "PasswordChangeRequest": { "type": "object", "required": [ "current_password", "new_password" ], "properties": { "current_password": { "type": "string", "format": "password" }, "new_password": { "type": "string", "format": "password" } } }, "PasswordResetRequest": { "type": "object", "required": [ "reset_token", "new_password" ], "properties": { "reset_token": { "type": "string", "format": "password" }, "new_password": { "type": "string", "format": "password" } } }, "ProcessInviteRequest": { "type": "object", "properties": { "accepts": { "type": "array", "items": { "type": "string", "format": "uuid", "description": "ID of an invitation to accept." } }, "rejects": { "type": "array", "items": { "type": "string", "format": "uuid", "description": "ID of an invitation to reject." } } } }, "ConfirmEmailRequest": { "type": "object", "required": [ "confirm_token" ], "properties": { "confirm_token": { "type": "string" } } }, "ConfirmEmailResponse": { "type": "object", "required": [ "user_email" ], "properties": { "user_email": { "type": "string" } } }, "Account": { "type": "object", "required": [ "acct_id", "node_enrollment", "component" ], "properties": { "name": { "type": "string", "description": "Name of the account. Account names must be unique within a CCM instance." }, "acct_id": { "type": "string", "format": "uuid", "description": "Account ID uniquely identifying this account." }, "created_at": { "type": "integer", "format": "int64", "description": "When this account was created." }, "roles": { "type": "array", "description": "Role of the current user in a particular account.", "items": { "$ref": "#/definitions/AccessRoles" } }, "custom_logo": { "type": "string", "format": "binary", "description": "Logo of the particular account. Max size 128Kb, .jpg, .png, .svg file formats only." }, "status": { "$ref": "#/definitions/UserAccountStatus" }, "auth_configs": { "type": "object", "additionalProperties": { "$ref": "#/definitions/AuthenticationConfig" } }, "node_enrollment": { "$ref": "#/definitions/NodeEnrollment" }, "totals": { "$ref": "#/definitions/ObjectCounts" }, "component": { "$ref": "#/definitions/AccountComponent" }, "default_group_id": { "type": "string", "format": "uuid", "description": "Default group_id in an account." }, "marketplace_group_id": { "type": "string", "format": "uuid", "description": "Marketplace group_id for the account" }, "account_status": { "$ref": "#/definitions/AccountStatus" }, "azure_cvm_pcr_priority": { "$ref": "#/definitions/AzureCvmPcrPriority" } } }, "AccountComponent": { "type": "string", "description": "Get the account type.", "enum": [ "DEFAULT", "CONFIDENTIAL_AI" ] }, "AccountStatus": { "type": "string", "enum": [ "Active", "Deactivated" ] }, "AccountRequest": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "description": "Name of the account. Accounts must be unique within a CCM instance." }, "custom_logo": { "type": "string", "format": "binary", "description": "Logo for an account. Max size 128Kb, .jpg, .png, .svg file formats only." }, "auth_configs": { "type": "array", "items": { "$ref": "#/definitions/AuthenticationConfig" } }, "node_enrollment": { "$ref": "#/definitions/NodeEnrollment" }, "component": { "$ref": "#/definitions/AccountComponent" } } }, "AccountUpdateRequest": { "type": "object", "properties": { "name": { "type": "string" }, "custom_logo": { "type": "string", "format": "binary" }, "add_auth_configs": { "type": "array", "items": { "$ref": "#/definitions/AuthenticationConfig" } }, "mod_auth_configs": { "type": "object", "additionalProperties": { "$ref": "#/definitions/AuthenticationConfig" } }, "del_auth_configs": { "type": "array", "items": { "type": "string", "format": "uuid" } }, "enabled": { "type": "boolean" }, "default_group_id": { "type": "string", "format": "uuid" }, "marketplace_group_id": { "type": "string", "format": "uuid" }, "account_status": { "$ref": "#/definitions/AccountStatus" }, "azure_cvm_pcr_priority": { "$ref": "#/definitions/AzureCvmPcrPriority" } } }, "BuildUpdateRequest": { "type": "object", "properties": { "configs": { "type": "object", "additionalProperties": { "type": "object" } } } }, "AccountListResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/Account" } } } }, "SysAdminConfigureClusterRequest": { "type": "object", "properties": { "dsm_config": { "$ref": "#/definitions/DsmClusterConfig" }, "nitro_enclaves_converter_config": { "$ref": "#/definitions/NitroEnclavesConverterConfig" }, "microsoft_attestation_service_config": { "$ref": "#/definitions/MicrosoftAttestationServiceConfig" }, "nvidia_attestation_service_config": { "$ref": "#/definitions/NvidiaAttestationServiceConfig" }, "aci_config": { "$ref": "#/definitions/AciConfig" }, "eks_config": { "$ref": "#/definitions/EksConfig" } } }, "SysAdminGetClusterConfigurationResponse": { "type": "object", "required": [ "dsm_config", "nitro_enclaves_converter_config", "microsoft_attestation_service_config", "nvidia_attestation_service_config", "aci_config", "eks_config" ], "properties": { "dsm_config": { "$ref": "#/definitions/DsmClusterConfig" }, "nitro_enclaves_converter_config": { "$ref": "#/definitions/NitroEnclavesConverterConfig" }, "microsoft_attestation_service_config": { "$ref": "#/definitions/MicrosoftAttestationServiceConfig" }, "nvidia_attestation_service_config": { "$ref": "#/definitions/NvidiaAttestationServiceConfig" }, "aci_config": { "$ref": "#/definitions/AciConfig" }, "eks_config": { "$ref": "#/definitions/EksConfig" } } }, "DsmClusterConfig": { "x-nullable": true, "type": "object", "required": [ "active_cluster", "transition_clusters" ], "properties": { "active_cluster": { "$ref": "#/definitions/DsmCluster" }, "transition_clusters": { "type": "array", "description": "Clusters that are being phased out but still have objects inside them. In order of their use, first being the oldest.", "items": { "$ref": "#/definitions/DsmCluster" } } } }, "DsmCluster": { "type": "object", "required": [ "app_id", "url" ], "properties": { "app_id": { "type": "string", "format": "uuid", "description": "SDKMS administrative app id." }, "url": { "type": "string", "description": "SDKMS URL to use for storing datasets." } } }, "NitroEnclavesConverterConfig": { "x-nullable": true, "type": "object", "required": [ "converter_url" ], "properties": { "converter_url": { "type": "string", "description": "URL to use for contacting the Nitro Enclaves Converter microservice." } } }, "MicrosoftAttestationServiceConfig": { "x-nullable": true, "type": "object", "required": [ "url", "trusted_report_mrsigners" ], "properties": { "url": { "type": "string", "description": "Microsoft Azure Attestation Service (MAA) endpoint url." }, "trusted_report_mrsigners": { "type": "array", "items": { "type": "string" }, "description": "Array of Microsoft Azure Attestation Service (MAA) expected MRSigner value (hex string)." } } }, "NvidiaAttestationServiceConfig": { "x-nullable": true, "type": "object", "required": [ "nras_url" ], "properties": { "nras_url": { "type": "string", "description": "Nvidia Remote Attestation Service (NRAS) url." } } }, "AciConfig": { "x-nullable": true, "type": "object", "required": [ "converter_url", "allow_large_images", "agent_image", "init_image" ], "properties": { "converter_url": { "type": "string", "description": "URL to use for contacting the ACI fortifier microservice." }, "agent_image": { "$ref": "#/definitions/ConversionRequestImageInfo" }, "init_image": { "$ref": "#/definitions/ConversionRequestImageInfo" } } }, "EksConfig": { "x-nullable": true, "type": "object", "required": [ "access_key_id" ], "properties": { "access_key_id": { "type": "string", "description": "AWS access key ID" }, "secret_access_key": { "type": "string", "description": "AWS secret access key. This field is redacted in getClusterConfiguration API's response." } } }, "RegistryRequest": { "type": "object", "required": [ "url", "credential" ], "properties": { "url": { "type": "string", "description": "URL of the registry." }, "credential": { "$ref": "#/definitions/CredentialType" }, "description": { "type": "string", "description": "Description of the registry." } } }, "UpdateRegistryRequest": { "$ref": "#/definitions/PatchRequest" }, "ImageRegistryResponse": { "type": "object", "properties": { "registry": { "$ref": "#/definitions/Registry" } } }, "AppRegistryResponse": { "type": "object", "properties": { "input_image_registry": { "$ref": "#/definitions/Registry" }, "output_image_registry": { "$ref": "#/definitions/Registry" } } }, "Registry": { "type": "object", "required": [ "url", "registry_id" ], "properties": { "url": { "type": "string", "description": "URL of the registry." }, "registry_id": { "type": "string", "format": "uuid", "description": "UUID of the registry." }, "description": { "type": "string", "description": "Description of the registry." }, "username": { "type": "string", "description": "Username of the registry." } } }, "CredentialType": { "type": "object", "minProperties": 1, "maxProperties": 1, "description": "", "properties": { "default": { "$ref": "#/definitions/AuthConfig" } } }, "DcapArtifactRequest": { "type": "object", "required": [ "fmspc", "crl_issuer" ], "properties": { "qe_id": { "type": "string", "format": "binary", "description": "Quoting Enclave Id." }, "fmspc": { "type": "string", "format": "binary", "description": "SGX FMSPC." }, "crl_issuer": { "type": "string", "format": "binary", "description": "CRL issuer CA" } } }, "SessionInfo": { "type": "object", "required": [ "subject_id", "session_expires_at", "session_token_expires_at" ], "properties": { "subject_id": { "type": "string", "format": "uuid" }, "session_expires_at": { "type": "integer", "format": "int64", "description": "Timestamp of when session will expire." }, "session_token_expires_at": { "type": "integer", "format": "int64", "description": "Timestamp of when session token will expire." }, "selected_account_id": { "type": "string", "format": "uuid", "description": "The selected account ID, if one is selected." } } }, "ObjectCounts": { "type": "object", "required": [ "datasets", "final_workflows", "nodes" ], "properties": { "datasets": { "type": "integer", "minimum": 0 }, "final_workflows": { "type": "integer", "minimum": 0 }, "nodes": { "type": "integer", "minimum": 0 } } }, "DcapPlatformName": { "type": "string", "description": "Enum type to represent #/parameters/DcapPlatformName values", "enum": [ "SGX", "TDX" ] }, "GetAllApplicationConfigsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ApplicationConfigResponse" } } } }, "ApplicationConfigResponse": { "type": "object", "description": "", "required": [ "config_id", "created_at", "updated_at", "name", "description", "app_config", "labels", "ports", "group_id" ], "properties": { "config_id": { "type": "string" }, "created_at": { "type": "integer", "format": "int64" }, "updated_at": { "type": "integer", "format": "int64" }, "name": { "type": "string" }, "description": { "type": "string" }, "app_config": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/ApplicationConfigContents" } }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } }, "ports": { "type": "array", "x-sorted": true, "items": { "type": "string" } }, "zone": { "$ref": "#/definitions/VersionedZoneId" }, "group_id": { "type": "string", "format": "uuid" } } }, "UpdateApplicationConfigRequest": { "type": "object", "description": "Update an application config.", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "ports": { "type": "array", "x-sorted": true, "items": { "type": "string" } }, "group_id": { "type": "string", "format": "uuid" } } }, "ApplicationConfig": { "type": "object", "description": "", "required": [ "name", "description", "app_config", "labels", "ports" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "app_config": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/ApplicationConfigContents" } }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } }, "ports": { "type": "array", "x-sorted": true, "items": { "type": "string" } }, "zone": { "$ref": "#/definitions/VersionedZoneId" }, "group_id": { "type": "string", "format": "uuid" } } }, "VersionedZoneId": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "format": "uuid" }, "version": { "type": "integer", "format": "int64" } } }, "RuntimeAppConfig": { "type": "object", "description": "", "required": [ "config", "extra" ], "properties": { "config": { "$ref": "#/definitions/HashedConfig" }, "extra": { "$ref": "#/definitions/ApplicationConfigExtra" } } }, "HashedConfig": { "type": "object", "description": "", "required": [ "app_config", "labels", "zone_ca" ], "properties": { "app_config": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/ApplicationConfigContents" } }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } }, "zone_ca": { "type": "array", "x-sorted": true, "items": { "type": "string" } }, "workflow": { "$ref": "#/definitions/ApplicationConfigWorkflow" } } }, "ApplicationConfigWorkflow": { "type": "object", "description": "", "required": [ "workflow_id", "app_name", "port_map" ], "properties": { "workflow_id": { "type": "string", "format": "uuid" }, "app_name": { "type": "string" }, "port_map": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/ApplicationConfigPort" } } }, "app_acct_id": { "type": "string", "format": "uuid" }, "app_group_id": { "type": "string", "format": "uuid" } } }, "ApplicationConfigPort": { "type": "object", "description": "", "properties": { "dataset": { "$ref": "#/definitions/ApplicationConfigPortDataset" }, "application": { "$ref": "#/definitions/ApplicationConfigPortApp" } } }, "ApplicationConfigPortDataset": { "type": "object", "description": "", "required": [ "id" ], "properties": { "id": { "type": "string", "format": "uuid" }, "acct_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" } } }, "ApplicationConfigPortApp": { "type": "object", "description": "", "properties": { "acct_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" } } }, "ApplicationConfigExtra": { "type": "object", "description": "", "properties": { "connections": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/ApplicationConfigConnection" } } } } }, "ApplicationConfigConnection": { "type": "object", "description": "", "properties": { "dataset": { "$ref": "#/definitions/ApplicationConfigConnectionDataset" }, "application": { "$ref": "#/definitions/ApplicationConfigConnectionApplication" } } }, "ApplicationConfigConnectionDataset": { "type": "object", "description": "", "required": [ "location", "credentials" ], "properties": { "location": { "type": "string" }, "credentials": { "$ref": "#/definitions/ApplicationConfigDatasetCredentials" } } }, "ApplicationConfigDatasetCredentials": { "type": "object", "description": "", "properties": { "sdkms": { "$ref": "#/definitions/ApplicationConfigSdkmsCredentials" } } }, "ApplicationConfigSdkmsCredentials": { "type": "object", "description": "", "required": [ "credentials_url", "credentials_key_name", "sdkms_app_id" ], "properties": { "credentials_url": { "type": "string" }, "credentials_key_name": { "type": "string" }, "sdkms_app_id": { "type": "string", "format": "uuid" } } }, "ApplicationConfigConnectionApplication": { "type": "object", "description": "", "required": [ "workflow_domain" ], "properties": { "workflow_domain": { "type": "string" } } }, "ApplicationConfigContents": { "type": "object", "required": [ "value" ], "properties": { "contents": { "type": "string" } } }, "GetAllApprovalRequests": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ApprovalRequest" } } } }, "ApprovalRequest": { "type": "object", "required": [ "request_id", "requester", "created_at", "acct_id", "group_id", "operation", "method", "approvers", "status", "expiry" ], "properties": { "request_id": { "type": "string", "format": "uuid", "description": "UUID uniquely identifying this approval request." }, "requester": { "$ref": "#/definitions/Entity" }, "created_at": { "type": "integer", "format": "int64", "description": "When this approval request was created." }, "acct_id": { "type": "string", "format": "uuid", "description": "The account ID of the account that this approval request belongs to." }, "group_id": { "type": "string", "format": "uuid", "description": "The group ID where this approval request belongs to." }, "operation": { "type": "string", "description": "Operation URL path, e.g. `/crypto/v1/keys`, `/crypto/v1/groups/`." }, "method": { "type": "string", "description": "Method for the operation: POST, PATCH, PUT, DELETE, or GET. Default is POST." }, "body": { "type": "object" }, "approvers": { "type": "array", "items": { "$ref": "#/definitions/Entity" } }, "denier": { "$ref": "#/definitions/Entity" }, "denial_reason": { "type": "string", "description": "Reason given by denier." }, "reviewers": { "type": "array", "items": { "$ref": "#/definitions/Entity" } }, "status": { "$ref": "#/definitions/ApprovalRequestStatus" }, "subjects": { "type": "array", "items": { "$ref": "#/definitions/ApprovalSubject" } }, "description": { "type": "string", "description": "Optional comment about the approval request for the reviewer." }, "expiry": { "type": "integer", "format": "int64", "description": "When this approval request expires." } } }, "ApproveRequest": { "type": "object", "description": "Optional parameters for approve request", "properties": { "password": { "type": "string", "description": "Password is required if the approval policy requires password authentication." }, "u2f": { "type": "string", "description": "U2F is required if the approval policy requires two factor authentication." }, "body": { "type": "object", "description": "Data associated with the approval" } } }, "DenyRequest": { "type": "object", "description": "Optional parameters for deny request", "properties": { "reason": { "type": "string", "description": "Reason associated with the denial" } } }, "Entity": { "type": "object", "description": "An app, user, or plugin ID.", "properties": { "user": { "type": "string", "format": "uuid", "description": "The user ID of the user who created this entity, if this entity was created by a user." } } }, "ApprovalRequestStatus": { "type": "string", "description": "Approval request status.", "enum": [ "PENDING", "APPROVED", "DENIED", "FAILED", "DENIED_OTHER", "PENDING_CHILD", "PENDING_OTHER" ] }, "ApprovalSubject": { "type": "object", "description": "Identifies an object acted upon by an approval request.", "properties": { "workflow": { "type": "string", "format": "uuid", "description": "The ID of the workflow being acted upon." } } }, "ApprovalRequestRequest": { "type": "object", "description": "Request to create an approval request.", "required": [ "operation" ], "properties": { "operation": { "type": "string", "description": "Operation URL path, e.g. `/crypto/v1/keys`, `/crypto/v1/groups/`." }, "method": { "type": "string", "description": "Method for the operation: POST, PATCH, PUT, DELETE, or GET. Default is POST." }, "body": { "type": "object" }, "description": { "type": "string", "description": "Optional comment about the approval request for the reviewer." } } }, "ApprovableResult": { "type": "object", "description": "Result of an approval request", "required": [ "status", "body" ], "properties": { "status": { "type": "integer", "description": "The HTTP status code for this partial request." }, "body": { "type": "object" } } }, "GetAllComputeClustersResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/ComputeClusterResponse" } } } }, "ComputeClusterResponse": { "type": "object", "required": [ "cluster_id", "name", "description", "created_by" ], "properties": { "cluster_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" }, "created_by": { "type": "string", "format": "uuid" }, "kubernetes": { "$ref": "#/definitions/KubernetesClusterInfo" }, "aci": { "$ref": "#/definitions/AciClusterInfo" } } }, "KubernetesClusterInfo": { "type": "object", "required": [ "cluster", "server", "user" ], "properties": { "cluster": { "type": "string" }, "server": { "type": "string" }, "user": { "type": "string" } } }, "AciClusterInfo": { "type": "object", "required": [ "subscription", "resource_group" ], "properties": { "subscription": { "type": "string", "format": "uuid" }, "resource_group": { "type": "string" }, "deployment_location": { "type": "string" } } }, "ComputeClusterRequest": { "type": "object", "description": "Request body for creating a compute cluster. Exactly one of kubernetes or aci field must be set.", "required": [ "name", "description" ], "minProperties": 3, "maxProperties": 3, "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "kubernetes": { "$ref": "#/definitions/KubernetesClusterRequest" }, "aci": { "$ref": "#/definitions/AciClusterRequest" } } }, "KubernetesClusterRequest": { "type": "object", "properties": { "kubeconfig": { "$ref": "#/definitions/KubeConfig" } } }, "KubeConfig": { "type": "object", "required": [ "clusters", "users", "contexts" ], "properties": { "kind": { "type": "string" }, "apiVersion": { "type": "string" }, "clusters": { "type": "array", "items": { "$ref": "#/definitions/KubeConfigClusterRef" } }, "users": { "type": "array", "items": { "$ref": "#/definitions/KubeConfigUserRef" } }, "contexts": { "type": "array", "items": { "$ref": "#/definitions/KubeConfigContextRef" } }, "current-context": { "type": "string" } } }, "KubeConfigClusterRef": { "type": "object", "required": [ "name", "cluster" ], "properties": { "name": { "type": "string" }, "cluster": { "$ref": "#/definitions/KubeConfigCluster" } } }, "KubeConfigUserRef": { "type": "object", "required": [ "name", "user" ], "properties": { "name": { "type": "string" }, "user": { "$ref": "#/definitions/KubeConfigUser" } } }, "KubeConfigContextRef": { "type": "object", "required": [ "name", "context" ], "properties": { "name": { "type": "string" }, "context": { "$ref": "#/definitions/KubeConfigContext" } } }, "KubeConfigCluster": { "type": "object", "required": [ "server" ], "properties": { "server": { "type": "string" }, "insecure-skip-tls-verify": { "type": "boolean" }, "certificate-authority-data": { "type": "string" } } }, "KubeConfigUser": { "type": "object", "properties": { "token": { "type": "string" }, "client-certificate-data": { "type": "string" }, "client-key-data": { "type": "string" }, "exec": { "$ref": "#/definitions/ExecConfig" } } }, "KubeConfigContext": { "type": "object", "required": [ "cluster", "user" ], "properties": { "cluster": { "type": "string" }, "user": { "type": "string" }, "namespace": { "type": "string" } } }, "ExecConfig": { "type": "object", "description": "This struct is built to match ExecConfig from the rust kube-client crate.", "required": [ "command" ], "properties": { "api_version": { "type": "string" }, "command": { "type": "string" }, "args": { "type": "array", "items": { "type": "string" } } } }, "AciClusterRequest": { "type": "object", "required": [ "subscription", "resource_group", "secrets" ], "properties": { "subscription": { "type": "string", "format": "uuid" }, "resource_group": { "type": "string" }, "deployment_location": { "type": "string" }, "secrets": { "$ref": "#/definitions/AciComputeSecrets" } } }, "AciComputeSecrets": { "type": "object", "minProperties": 1, "maxProperties": 1, "properties": { "service_principal": { "$ref": "#/definitions/ServicePrincipal" } } }, "ServicePrincipal": { "type": "object", "required": [ "app_id", "tenant", "password" ], "properties": { "app_id": { "description": "Service principal app id.", "type": "string" }, "tenant": { "description": "Service principal tenant id.", "type": "string" }, "password": { "description": "Service principal app passcode.", "type": "string" } } }, "SearchMetadata": { "type": "object", "required": [ "total_count", "filtered_count", "page", "pages", "limit" ], "properties": { "page": { "type": "integer", "description": "Current page number" }, "pages": { "type": "integer", "description": "Total pages as per the item counts and page limit." }, "limit": { "type": "integer", "description": "Number of items to limit in a page." }, "total_count": { "type": "integer", "description": "Total number of unfiltered items." }, "filtered_count": { "type": "integer", "description": "Total number of items as per the current filter." } } }, "ImageAttributes": { "type": "object", "minProperties": 0, "maxProperties": 1, "x-derive-default": true, "properties": { "sgx": { "description": "SGX1/SGX2 Enclave Attributes", "$ref": "#/definitions/SgxAttributes" }, "nitro_enclave": { "description": "AWS Nitro Enclave Attributes", "$ref": "#/definitions/NitroEnclaveAttributes" }, "aci": { "description": "Azure ACI Policy Attributes", "$ref": "#/definitions/AciAttributes" }, "azure_cvm": { "description": "Azure Confidential VM Attributes", "$ref": "#/definitions/AzureCvmAttributes" }, "baremetal_tdx": { "description": "Baremetal TDX Enclave Attributes", "$ref": "#/definitions/BaremetalTdxAttributes" }, "baremetal_amd_sev_snp": { "description": "Baremetal AMD SEV-SNP Enclave Attributes", "$ref": "#/definitions/BaremetalAmdSevSnpAttributes" } } }, "SgxAttributes": { "type": "object", "required": [ "mrenclave" ], "properties": { "mrenclave": { "type": "string", "description": "mrenclave as a hex string." }, "features": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } } }, "NitroEnclaveAttributes": { "type": "object", "required": [ "hash_algorithm", "pcr0", "pcr1", "pcr2" ], "properties": { "hash_algorithm": { "$ref": "#/definitions/NitroEnclaveHashAlgorithm" }, "pcr0": { "type": "string", "description": "A contiguous measure of the contents of the image file, without the section data as a hex string." }, "pcr1": { "type": "string", "description": "A contiguous measure of the contents of the image file, without the section data as a hex string." }, "pcr2": { "type": "string", "description": "A contiguous measure of the contents of the image file, without the section data as a hex string." } } }, "NitroEnclaveHashAlgorithm": { "type": "string", "description": "Nitro enclave hash algorithm", "enum": [ "Sha384" ] }, "AciAttributes": { "type": "object", "description": "ACI generated policy that represents the containers to run and other security restrictions.", "required": [ "policy" ], "properties": { "policy": { "type": "string", "description": "Base64-encoded output of azure confcom acipolicygen tool." } } }, "SecureVmAttributes": { "type": "object", "required": [ "measurements", "coprocessors" ], "properties": { "measurements": { "type": "object", "description": "List of PCRs containing measurements of kernel, initramfs, kernel command line as a hex string.", "additionalProperties": { "type": "string" } }, "coprocessors": { "type": "array", "items": { "$ref": "#/definitions/Coprocessor" } } } }, "AzureCvmAttributes": { "type": "object", "required": [ "pcrs", "coprocessors" ], "properties": { "pcrs": { "type": "object", "description": "List of TPM PCRs hash values to enforce. 64 hex characters", "required": [ "hash_alg" ], "properties": { "hash_alg": { "$ref": "#/definitions/HashAlgorithm" }, "pcr0": { "type": "string" }, "pcr1": { "type": "string" }, "pcr2": { "type": "string" }, "pcr3": { "type": "string" }, "pcr4": { "type": "string" }, "pcr5": { "type": "string" }, "pcr6": { "type": "string" }, "pcr7": { "type": "string" }, "pcr8": { "type": "string" }, "pcr9": { "type": "string" }, "pcr10": { "type": "string" }, "pcr11": { "type": "string" }, "pcr12": { "type": "string" }, "pcr13": { "type": "string" }, "pcr14": { "type": "string" }, "pcr15": { "type": "string" }, "pcr16": { "type": "string" }, "pcr17": { "type": "string" }, "pcr18": { "type": "string" }, "pcr19": { "type": "string" }, "pcr20": { "type": "string" }, "pcr21": { "type": "string" }, "pcr22": { "type": "string" } } }, "coprocessors": { "type": "array", "items": { "$ref": "#/definitions/Coprocessor" } } } }, "BaremetalAmdSevSnpAttributes": { "type": "object", "required": [ "measurement", "vmpl", "coprocessors" ], "properties": { "measurement": { "type": "string", "description": "Guest Launch Measurement as hex string" }, "vmpl": { "type": "string", "description": "Virtual Machine Privilege Level", "$ref": "#/definitions/AmdSevSnpVmpl" }, "coprocessors": { "type": "array", "items": { "$ref": "#/definitions/Coprocessor" } } } }, "BaremetalTdxAttributes": { "type": "object", "required": [ "mrtd", "rtmr0", "rtmr1", "rtmr2", "rtmr3", "coprocessors" ], "properties": { "mrtd": { "type": "string", "description": "TD firmware binary (OVMF.fd) measurement as a hex string." }, "rtmr0": { "type": "string", "description": "Firmware and platform runtime measurements as hex string" }, "rtmr1": { "type": "string", "description": "Runtime measurement for kernel for direct boot and bootchain for indirect boot as hex string" }, "rtmr2": { "type": "string", "description": "Runtime measurement of kernel cmdline and initrd as hex string" }, "rtmr3": { "type": "string", "description": "Runtime extendable measurement register 3 as hex string" }, "coprocessors": { "type": "array", "items": { "$ref": "#/definitions/Coprocessor" } } } }, "AmdSevSnpVmpl": { "type": "string", "description": "Virtual Machine Privilege Level", "enum": [ "vmpl0", "vmpl1", "vmpl2", "vmpl3" ] }, "Coprocessor": { "type": "object", "required": [ "attestation" ], "properties": { "attestation": { "$ref": "#/definitions/Attestation" }, "gpu_vendor": { "$ref": "#/definitions/GpuVendor" } } }, "Attestation": { "type": "string", "description": "Specifies whether attestation is required or ignored.", "enum": [ "Ignored", "Required" ] }, "GpuVendor": { "type": "string", "description": "An enum for GPU Vendor", "enum": [ "Nvidia" ] }, "HashAlgorithm": { "type": "string", "enum": [ "SHA256" ] }, "AzureCvmPcrPriority": { "type": "array", "description": "Ordered list of exactly the integer elements 0 through 22", "items": { "type": "integer" } }, "DockerInfo": { "type": "object", "description": "Docker info of an image.", "required": [ "docker_image_name", "docker_version" ], "properties": { "docker_image_name": { "type": "string", "description": "Image docker image name." }, "docker_version": { "type": "string", "description": "Image docker version." }, "docker_image_sha": { "type": "string", "description": "Build docker image sha." }, "docker_image_size": { "type": "integer", "format": "int64", "description": "Docker image size in MiB (units of 2**20 bytes)." }, "exposed_ports": { "description": "List of ports exposed by the Docker image.", "items": { "$ref": "#/definitions/DockerNetworkPort" }, "type": "array" } } }, "DockerNetworkProtocol": { "type": "string", "description": "Protocol Associated with a Port exposed by a docker container.", "enum": [ "Tcp", "Udp" ] }, "DockerNetworkPort": { "type": "object", "description": "A port exposed by a docker container.", "required": [ "port", "protocol" ], "properties": { "port": { "type": "integer", "description": "A valid, specific port number from 1..65535 (inclusive)." }, "protocol": { "$ref": "#/definitions/DockerNetworkProtocol" } } }, "LaunchHint": { "type": "object", "description": "This object encodes a suggested manner for launching a confidential application. It may need to be configured further depending on your environment.", "minProperties": 1, "maxProperties": 1, "properties": { "azure_resource_template": { "description": "The Microsoft ARM Template for launching this build. May require some properties (such as the join token).", "type": "string" } } }, "DatasetUpdateRequest": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "location": { "type": "string" }, "credentials": { "$ref": "#/definitions/DatasetCredentialsRequest" }, "long_description": { "type": "string", "description": "A github-flavored-markdown formatted string that will be rendered in UI for viewing a summary of this dataset, limited to 16 KiB." }, "metadata": { "$ref": "#/definitions/DatasetMetadata" }, "group_id": { "type": "string", "format": "uuid" } } }, "CreateDatasetRequest": { "type": "object", "required": [ "name", "description", "labels", "location", "credentials" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "location": { "type": "string" }, "credentials": { "$ref": "#/definitions/DatasetCredentialsRequest" }, "metadata": { "$ref": "#/definitions/DatasetMetadata" }, "long_description": { "type": "string", "description": "A github-flavored markdown-formatted string that will be rendered in UI for viewing a summary of this dataset, limited to 16KiB." }, "group_id": { "type": "string", "format": "uuid" } } }, "DatasetCredentialsRequest": { "type": "object", "description": "", "required": [ "contents" ], "properties": { "contents": { "type": "string" } } }, "Dataset": { "type": "object", "description": "", "required": [ "dataset_id", "owner", "creator_id", "created_at", "updated_at", "name", "description", "location", "labels", "credentials", "group_id" ], "properties": { "dataset_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "owner": { "type": "string", "format": "uuid" }, "creator_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" }, "created_at": { "type": "integer", "format": "int64", "description": "Dataset creation time (seconds since epoch)." }, "updated_at": { "type": "integer", "format": "int64", "description": "Last update UNIX timestamp (seconds since epoch)." }, "description": { "type": "string" }, "location": { "type": "string" }, "labels": { "type": "object", "additionalProperties": { "type": "string" } }, "credentials": { "$ref": "#/definitions/DatasetCredentials" }, "metadata": { "$ref": "#/definitions/DatasetMetadata" }, "last_workflow_output": { "type": "integer", "format": "int64" }, "long_description": { "type": "string", "description": "A github-flavored markdown-formatted string that will be rendered in UI for viewing a summary of this dataset, limited to 16KiB." } } }, "DatasetCredentials": { "type": "object", "description": "", "properties": { "sdkms": { "$ref": "#/definitions/SdkmsCredentials" } } }, "DatasetMetadata": { "type": "object", "description": "Metadata about the dataset." }, "SdkmsCredentials": { "type": "object", "description": "", "required": [ "credentials_url", "credentials_key_name" ], "properties": { "credentials_url": { "type": "string" }, "credentials_key_name": { "type": "string" } } }, "GetAllDatasetsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/Dataset" } } } }, "WorkflowRunRawResponse": { "type": "object", "properties": { "kubernetes": {}, "aci": {} } }, "WorkflowRun": { "type": "object", "required": [ "run_id", "run_status", "created_at", "graph_id", "graph_version", "group_id", "deployment", "workflow_cluster_data" ], "properties": { "run_id": { "type": "string", "format": "uuid", "description": "Run ID of running workflow" }, "run_status": { "$ref": "#/definitions/WorkflowRunStatus" }, "created_at": { "type": "integer", "format": "int64", "description": "Time workflow was started." }, "graph_id": { "type": "string", "format": "uuid" }, "graph_version": { "type": "string", "description": "The current version of the running graph, not necessarily the same version that was started originally." }, "group_id": { "type": "string", "format": "uuid" }, "deployment": { "$ref": "#/definitions/WorkflowDeployment" }, "workflow_cluster_data": { "$ref": "#/definitions/WorkflowRunData" } } }, "GetAllWorkflowRunsResponse": { "type": "object", "required": [ "workflow_runs" ], "properties": { "workflow_runs": { "type": "array", "items": { "$ref": "#/definitions/WorkflowRun" } } } }, "WorkflowRunStatusResponse": { "type": "object", "required": [ "run" ], "properties": { "run": { "$ref": "#/definitions/WorkflowRun" }, "generic": { "$ref": "#/definitions/WorkflowRunRawResponse" } } }, "WorkflowRunStatus": { "type": "string", "enum": [ "PENDING", "RUNNING", "FAILED", "SUCCEEDED", "TERMINATING", "TERMINATED", "UNKNOWN" ] }, "WorkflowRunLogsResponse": { "type": "object", "required": [ "text" ], "properties": { "text": { "type": "string", "description": "Plain text logs" }, "generic": { "$ref": "#/definitions/WorkflowRunRawResponse" } } }, "StartWorkflowRunRequest": { "type": "object", "required": [ "graph_id", "graph_version" ], "properties": { "graph_id": { "description": "UUID of a graph.", "type": "string", "format": "uuid" }, "graph_version": { "description": "Version of a graph.", "type": "string" }, "deployment": { "$ref": "#/definitions/WorkflowDeployment" }, "runtime_configs": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObjectFinalAppPatch" } } } }, "UpdateWorkflowRunRequest": { "type": "object", "properties": { "run_status": { "$ref": "#/definitions/WorkflowRunStatus" } } }, "WorkflowRunData": { "type": "object", "x-union-object": true, "properties": { "AciSingleJob": { "$ref": "#/definitions/AciWorkflowRunData" }, "KubernetesSingleJob": { "$ref": "#/definitions/KubernetesWorkflowRunData" } } }, "AciWorkflowRunData": { "type": "object", "required": [ "app_id", "build_id", "config_id", "cluster_id", "container_group_name", "deployment_name" ], "properties": { "app_id": { "type": "string", "format": "uuid" }, "build_id": { "type": "string", "format": "uuid" }, "config_id": { "type": "string" }, "cluster_id": { "type": "string", "format": "uuid" }, "container_group_name": { "type": "string" }, "deployment_name": { "type": "string" } } }, "KubernetesWorkflowRunData": { "type": "object", "required": [ "app_id", "build_id", "config_id", "cluster_id" ], "properties": { "app_id": { "type": "string", "format": "uuid" }, "build_id": { "type": "string", "format": "uuid" }, "config_id": { "type": "string" }, "cluster_id": { "type": "string", "format": "uuid" } } }, "AciCredentials": { "type": "object", "required": [ "subscription", "resource_group", "secrets" ], "properties": { "subscription": { "type": "string", "format": "uuid" }, "resource_group": { "type": "string" }, "deployment_location": { "type": "string" }, "secrets": { "$ref": "#/definitions/AciComputeSecrets" } } }, "AuthenticationType": { "type": "string", "enum": [ "ClientCertificate", "AwsToken" ] }, "FinalWorkflow": { "type": "object", "required": [ "graph_id", "name", "created_at", "updated_at", "description", "versions", "group_id", "acct_id" ], "properties": { "graph_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "group_id": { "type": "string", "format": "uuid" }, "acct_id": { "type": "string", "format": "uuid" }, "created_at": { "type": "integer", "format": "int64", "description": "Dataset creation time (seconds since epoch)." }, "updated_at": { "type": "integer", "format": "int64", "description": "Last update UNIX timestamp (seconds since epoch)." }, "description": { "type": "string" }, "versions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/FinalWorkflowGraph" } }, "type": { "$ref": "#/definitions/WorkflowType" } } }, "VersionInFinalWorkflow": { "type": "object", "required": [ "graph_id", "name", "description", "version", "contents" ], "properties": { "graph_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "description": { "type": "string" }, "version": { "type": "string" }, "contents": { "$ref": "#/definitions/FinalWorkflowGraph" } } }, "FinalWorkflowGraph": { "type": "object", "description": "", "required": [ "created_at", "objects", "edges", "runtime_configs", "labels" ], "properties": { "created_at": { "type": "integer", "format": "int64", "description": "Dataset creation time." }, "objects": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObject" } }, "edges": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowEdge" } }, "metadata": { "$ref": "#/definitions/WorkflowMetadata" }, "runtime_configs": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObjectFinalApp" } }, "deployment": { "$ref": "#/definitions/WorkflowDeployment" }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } } } }, "UpdateWorkflowVersionRequest": { "type": "object", "description": "", "required": [ "deployment", "runtime_configs" ], "properties": { "deployment": { "$ref": "#/definitions/WorkflowDeployment" }, "runtime_configs": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObjectFinalAppPatch" } } } }, "WorkflowDeployment": { "type": "object", "description": "Deployment info for a workflow. Exactly one of kubernetes_single_job or aci_single_job field must be set.", "minProperties": 1, "maxProperties": 1, "properties": { "kubernetes_single_job": { "$ref": "#/definitions/KubernetesSingleJob" }, "aci_single_job": { "$ref": "#/definitions/AciSingleJob" } } }, "KubernetesSingleJob": { "type": "object", "description": "", "required": [ "namespace", "cluster_id" ], "properties": { "namespace": { "type": "string" }, "cluster_id": { "type": "string", "format": "uuid" } } }, "AciSingleJob": { "type": "object", "description": "", "required": [ "cluster_id" ], "properties": { "cluster_id": { "type": "string", "format": "uuid" }, "deployment_location": { "type": "string" } } }, "WorkflowObjectFinalAppPatch": { "type": "object", "description": "", "properties": { "deployment": { "$ref": "#/definitions/WorkflowAppDeployment" } } }, "WorkflowObjectFinalApp": { "type": "object", "description": "", "required": [ "image_id", "config_id", "child_nodes" ], "properties": { "image_id": { "type": "string", "format": "uuid" }, "config_id": { "type": "string" }, "deployment": { "$ref": "#/definitions/WorkflowAppDeployment" }, "child_nodes": { "type": "array", "items": { "type": "string" } } } }, "WorkflowAppDeployment": { "type": "object", "description": "Deployment info for an app. Exactly one of kubernetes or aci field must be set.", "minProperties": 1, "maxProperties": 1, "properties": { "kubernetes": { "$ref": "#/definitions/WorkflowAppKubernetes" }, "aci": { "$ref": "#/definitions/WorkflowAppAci" } } }, "WorkflowAppKubernetes": { "type": "object", "description": "", "required": [ "job_spec" ], "properties": { "job_spec": { "type": "object" } } }, "WorkflowAppAci": { "type": "object", "description": "", "required": [ "exposed_ports", "env_vars" ], "properties": { "exposed_ports": { "description": "List of ports exposed for the azure container instance.", "type": "array", "items": { "$ref": "#/definitions/DockerNetworkPort" } }, "env_vars": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } } } }, "GetAllFinalWorkflowGraphsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/FinalWorkflow" } } } }, "CreateWorkflowVersionRequest": { "type": "object", "description": "", "required": [ "objects", "edges" ], "properties": { "objects": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObject" } }, "edges": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowEdge" } }, "metadata": { "$ref": "#/definitions/WorkflowMetadata" }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } } } }, "CreateFinalWorkflowGraph": { "type": "object", "description": "", "required": [ "name", "description", "contents" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "group_id": { "type": "string", "format": "uuid" }, "contents": { "$ref": "#/definitions/CreateWorkflowVersionRequest" } } }, "UpdateFinalWorkflowNameRequest": { "type": "object", "description": "", "properties": { "name": { "type": "string" }, "description": { "type": "string" } } }, "GetAllWorkflowGraphsResponse": { "type": "object", "required": [ "items" ], "properties": { "metadata": { "$ref": "#/definitions/SearchMetadata" }, "items": { "type": "array", "items": { "$ref": "#/definitions/WorkflowGraph" } } } }, "CreateWorkflowGraph": { "type": "object", "description": "Request to create a workflow graph.", "required": [ "name", "description", "objects", "edges" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "group_id": { "type": "string", "format": "uuid" }, "objects": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObject" } }, "edges": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowEdge" } }, "metadata": { "$ref": "#/definitions/WorkflowMetadata" }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } } } }, "UpdateWorkflowGraph": { "type": "object", "description": "", "required": [ "name", "description", "version", "objects", "edges" ], "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "version": { "type": "integer" }, "objects": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObject" } }, "edges": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowEdge" } }, "metadata": { "$ref": "#/definitions/WorkflowMetadata" }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } } } }, "WorkflowGraph": { "type": "object", "description": "", "required": [ "graph_id", "name", "creator_id", "created_at", "updated_at", "description", "version", "objects", "edges", "labels", "group_id", "acct_id" ], "properties": { "graph_id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "creator_id": { "type": "string", "format": "uuid" }, "created_at": { "type": "integer", "format": "int64", "description": "Dataset creation time (seconds since epoch)." }, "updated_at": { "type": "integer", "format": "int64", "description": "Last update UNIX timestamp (seconds since epoch)." }, "description": { "type": "string" }, "version": { "type": "integer" }, "group_id": { "type": "string", "format": "uuid" }, "acct_id": { "type": "string", "format": "uuid" }, "objects": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowObject" } }, "edges": { "type": "object", "x-sorted": true, "additionalProperties": { "$ref": "#/definitions/WorkflowEdge" } }, "metadata": { "$ref": "#/definitions/WorkflowMetadata" }, "labels": { "type": "object", "x-sorted": true, "additionalProperties": { "type": "string" } }, "type": { "$ref": "#/definitions/WorkflowType" } } }, "WorkflowObject": { "type": "object", "description": "", "required": [ "name", "ref" ], "properties": { "name": { "type": "string" }, "user_id": { "type": "string", "format": "uuid" }, "description": { "type": "string" }, "ref": { "$ref": "#/definitions/WorkflowObjectRef" } } }, "WorkflowObjectRef": { "type": "object", "description": "", "properties": { "placeholder": { "$ref": "#/definitions/WorkflowObjectRefPlaceholder" }, "dataset": { "$ref": "#/definitions/WorkflowObjectRefDataset" }, "app": { "$ref": "#/definitions/WorkflowObjectRefApp" } } }, "WorkflowObjectRefPlaceholder": { "type": "object", "description": "", "required": [ "kind" ], "properties": { "kind": { "type": "string", "enum": [ "dataset", "app", "script" ] }, "acct_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" } } }, "WorkflowObjectRefDataset": { "type": "object", "description": "", "required": [ "dataset_id" ], "properties": { "dataset_id": { "type": "string", "format": "uuid" }, "acct_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" } } }, "WorkflowObjectRefApp": { "type": "object", "description": "", "required": [ "image_id", "config_id" ], "properties": { "image_id": { "type": "string", "format": "uuid" }, "config_id": { "type": "string" }, "acct_id": { "type": "string", "format": "uuid" }, "group_id": { "type": "string", "format": "uuid" } } }, "WorkflowEdge": { "type": "object", "description": "", "required": [ "source", "target" ], "properties": { "source": { "$ref": "#/definitions/WorkflowEdgeLink" }, "target": { "$ref": "#/definitions/WorkflowEdgeLink" } } }, "WorkflowEdgeLink": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" }, "port": { "type": "string" } } }, "WorkflowMetadata": { "type": "object", "description": "", "required": [ "nodes" ], "properties": { "nodes": { "type": "object", "additionalProperties": { "type": "object" } }, "parent": { "$ref": "#/definitions/WorkflowLinkMetadata" }, "project": { "type": "string" } } }, "WorkflowLinkMetadata": { "type": "object", "description": "The final workflow from which this draft was derived. This field may point to a deleted final workflow in which you should treat it as if it's not present.", "required": [ "graph_id", "source_version" ], "properties": { "graph_id": { "type": "string", "format": "uuid" }, "source_version": { "type": "integer" } } }, "WorkflowType": { "type": "string", "description": "Workflow is owned or Shared", "enum": [ "OWNED", "SHARED" ] }, "Event": { "type": "object", "required": [ "message", "code" ], "properties": { "message": { "type": "string", "description": "Event Message" }, "code": { "$ref": "#/definitions/EventType" }, "severity": { "$ref": "#/definitions/EventSeverity" } } }, "EventType": { "type": "string", "description": "String enumeration identifying the event", "enum": [ "BAD_REQUEST", "NODE_NOT_ENROLLED", "INVALID_NAME", "INVALID_VALUE", "UNAUTHORIZED", "NO_ACCOUNT_SELECTED", "NO_ZONE_SELECTED", "ATTESTATION_REQUIRED", "NOT_FOUND", "UNIQUE_VIOLATION", "KEY_UNIQUE_VIOLATION", "INVALID_STATE", "USER_ALREADY_EXISTS", "FORBIDDEN", "AUTH_FAILED", "INVALID_SESSION", "SESSION_EXPIRED", "CERT_PARSE_ERROR", "QUOTA_EXCEEDED", "USER_ACCOUNT_PENDING", "INTERNAL_SERVER_ERROR", "MISSING_REQUIRED_PARAMETER", "INVALID_PATH_PARAMETER", "INVALID_HEADER", "INVALID_QUERY_PARAMETER", "INVALID_BODY_PARAMETER", "METHOD_NOT_ALLOWED", "LATEST_EULA_NOT_ACCEPTED", "CONFLICT", "DCAP_ARTIFACT_RETRIEVAL_ERROR", "DCAP_ERROR", "DCAP_ARTIFACT_SERIALIZATION_ERROR", "DCAP_ARTIFACT_DESERIALIZATION_ERROR", "LOCKED", "LOCKED_ACCOUNT", "UNDERGOING_MAINTENANCE", "BAD_GATEWAY", "TOO_MANY_REQUESTS", "REQUEST_PAYLOAD_TOO_LARGE", "FEATURE_NOT_SUPPORTED" ] }, "EventSeverity": { "type": "string", "description": "Event severity", "enum": [ "INFO", "WARNING", "ERROR", "CRITICAL" ] }, "AuthConfig": { "description": "Credentials for authenticating to a docker registry", "type": "object", "required": [ "username" ], "properties": { "username": { "type": "string", "description": "User name for docker registry authentication" }, "password": { "type": "string", "description": "Password for docker registry authentication. Note that this field may be redacted when it appears in API responses." } } }, "ConversionRequest": { "type": "object", "required": [ "inputImageName", "outputImageName" ], "properties": { "inputImageName": { "type": "string", "description": "Registry and image name for the input container, e.g. my-registry/sample-app:latest" }, "outputImageName": { "type": "string", "description": "Registry and image name for the output container, e.g. my-registry/sample-app-enclaveos:latest" }, "inputAuthConfig": { "$ref": "#/definitions/AuthConfig", "description": "Credentials to use when pulling the input image" }, "outputAuthConfig": { "$ref": "#/definitions/AuthConfig", "description": "Credentials to use when pushing the output image" }, "authConfig": { "$ref": "#/definitions/AuthConfig", "description": "Credentials to use for both input and output images" }, "isvprodid": { "type": "integer", "format": "int64", "description": "This is the enclave productId." }, "isvsvn": { "type": "integer", "format": "int64", "description": "This is the enclave security version." }, "memSize": { "type": "string", "description": "Override the enclave size, e.g. 2048M. Suffixes K, M, and G are supported." }, "threads": { "type": "integer", "format": "int32", "description": "Number of enclave threads" }, "debug": { "type": "boolean", "description": "Enables debug logging from EnclaveOS" }, "entrypoint": { "type": "array", "items": { "type": "string" }, "description": "Override the entrypoint of the original container" }, "entrypointArgs": { "type": "array", "items": { "type": "string" }, "description": "Override additional arguments to the container entrypoint" }, "encryptedDirs": { "type": "array", "items": { "type": "string" }, "description": "List of read-write files and/or directories which are encrypted using the enclave sealing key\nDefault encrypted directories - enclave-os protects the content in these files by encrypting them using the enclave sealing key. Anyone is allowed to read from or write to these files but only the enclave application can see it's contents in plain text.\n - /tmp\n - /run\n - /ftx-efs\n - /opt/fortanix/enclave-os/app-config/rw\nTips while debugging -> The default encrypted directories visible to the guest application as /tmp, /run and /ftx-efs are available in the container filesystem at /opt/fortanix/enclave-os/default-efs-dirs/.\n" }, "manifestOptions": { "type": "object", "additionalProperties": true, "description": "Add additional options to EnclaveOS manifest file" }, "certificates": { "type": "array", "items": { "$ref": "#/definitions/CertificateConfig" } }, "signingKey": { "$ref": "#/definitions/SigningKeyConfig" }, "externalPackages": { "type": "string", "description": "Fortanix external packages mount point in the toolserver container" }, "coreDumpPattern": { "type": "string", "description": "Template for generating debug core dump file paths" }, "logFilePath": { "type": "string", "description": "Path for EnclaveOS log file" }, "javaMode": { "type": "string" }, "roDirs": { "description": "List of read only directories\nDefault read-only directories - enclave-os protects the integrity of these files and hence only allows these files to be read and not modified.\n - /\n - /opt/fortanix/enclave-os/app-config/ro\n", "items": { "type": "string" }, "type": "array" }, "rwDirs": { "description": "List of read-write files and/or directories\nDefault read-write directories - enclave-os doesn't provide any security measures for these files and anyone is allowed to read from or write to these files.\n - /etc/hosts\n - /etc/resolv.conf\n - /etc/hostname\n", "items": { "type": "string" }, "type": "array" }, "allowCmdlineArgs": { "description": "Allow command line arguments to EnclaveOS application", "type": "boolean" }, "manifestEnv": { "description": "List of manifest environment variables", "items": { "type": "string" }, "type": "array" } } }, "ConversionResponse": { "type": "object", "properties": { "newImage": { "type": "string", "description": "Registry and image name for the output container (same as outputImageName in the request)" }, "imageSHA": { "type": "string", "description": "Shortened SHA256 Hash of the output image (This is the id of the image)" }, "imageSize": { "type": "integer", "description": "The output image size in bytes" }, "isvprodid": { "type": "integer", "description": "This is the enclave productId which is same as the isvprodid in input request, if set. Default value is 0" }, "isvsvn": { "type": "integer", "description": "This is the enclave security version which is same as the isvsvn in input request, if set. Default value is 0" }, "mrenclave": { "type": "string", "description": "This is the measurement of the enclave which uniquely identifies the shielded application. This is in hex format." }, "mrenclave2": { "type": "string", "description": "This is the measurement of the enclave which uniquely identifies the shielded application for SGX2. This is in hex format." }, "mrsigner": { "type": "string", "description": "This is the hash of the signing key which uniquely identifies the signing key. This is in hex format." } } }, "CertificateConfig": { "type": "object", "properties": { "issuer": { "type": "string", "description": "Certificate issuance strategy", "default": "MANAGER_CA", "enum": [ "MANAGER_CA", "NODE", "SELF_IAS" ] }, "subject": { "type": "string", "description": "Certificate subject common name, typically a DNS name" }, "keyType": { "type": "string", "description": "Type of key to generate", "default": "RSA", "enum": [ "RSA" ] }, "keyParam": { "type": "object", "description": "Key parameters. Currently must be an instance of RsaKeyParam, but other types may be supported in the future.\n" }, "keyPath": { "type": "string", "description": "Path to expose the key in the application filesystem" }, "certPath": { "type": "string", "description": "Path to expose the certificate in the application filesystem" } } }, "SigningKeyConfig": { "type": "object", "minProperties": 1, "maxProperties": 1, "description": "Configures a key to sign the converted image", "properties": { "default": { "$ref": "#/definitions/DefaultSigningKeyConfig" }, "sdkms": { "$ref": "#/definitions/SdkmsSigningKeyConfig" } } }, "DefaultSigningKeyConfig": { "type": "object", "description": "Requests signing the converted image with a default key" }, "SdkmsSigningKeyConfig": { "type": "object", "description": "Configures an SDKMS signing key. The key must be an RSA key with public exponent 3.\n", "properties": { "name": { "type": "string", "description": "name of the signing key in SDKMS" }, "apiKey": { "type": "string", "description": "API key to authenticate with SDKMS" } } }, "RsaKeyParam": { "type": "object", "properties": { "size": { "type": "integer", "format": "int32", "description": "RSA key size in bits" } } } }, "parameters": { "AccountRequest": { "name": "body", "in": "body", "required": true, "description": "Request to create an account.", "schema": { "$ref": "#/definitions/AccountRequest" } }, "AccountUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "Request to update an account.", "schema": { "$ref": "#/definitions/AccountUpdateRequest" } }, "BuildUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "Request to update an image.", "schema": { "$ref": "#/definitions/BuildUpdateRequest" } }, "SignupRequest": { "name": "body", "in": "body", "required": true, "description": "Request to create a new user.", "schema": { "$ref": "#/definitions/SignupRequest" } }, "InviteUserRequest": { "name": "body", "in": "body", "required": true, "description": "Request to invite a user.", "schema": { "$ref": "#/definitions/InviteUserRequest" } }, "PasswordChangeRequest": { "name": "body", "in": "body", "description": "Password change request.", "required": true, "schema": { "$ref": "#/definitions/PasswordChangeRequest" } }, "PasswordResetRequest": { "name": "body", "in": "body", "description": "Reset password.", "required": true, "schema": { "$ref": "#/definitions/PasswordResetRequest" } }, "ProcessInviteRequest": { "name": "body", "in": "body", "description": "Process account invitation (both accepts and rejects).", "required": true, "schema": { "$ref": "#/definitions/ProcessInviteRequest" } }, "ConfirmEmailRequest": { "name": "body", "in": "body", "description": "Validate user's email.", "required": true, "schema": { "$ref": "#/definitions/ConfirmEmailRequest" } }, "UserId": { "name": "user-id", "in": "path", "required": true, "description": "UUID of a user.", "type": "string", "format": "uuid" }, "AccountId": { "name": "account-id", "in": "path", "required": true, "description": "UUID of an Account.", "type": "string", "format": "uuid" }, "UpdateUserRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/UpdateUserRequest" } }, "CreateBuildRequest": { "name": "body", "in": "body", "required": true, "description": "Request to create an image entry.", "schema": { "$ref": "#/definitions/CreateBuildRequest" } }, "BuildStatusType": { "name": "status", "in": "query", "type": "string", "description": "Status string for the image.", "enum": [ "WHITELISTED", "REJECTED", "PENDING" ] }, "BuildDeploymentStatusType": { "name": "deployed_status", "in": "query", "type": "string", "description": "Deployment Status string for the image.", "enum": [ "DEPLOYED", "UNDEPLOYED" ] }, "BuildId": { "name": "build-id", "in": "path", "required": true, "description": "UUID of an image.", "type": "string", "format": "uuid" }, "AppStatusType": { "name": "status", "in": "query", "type": "string", "description": "Status string for the Application compute node.", "enum": [ "RUNNING", "STOPPED", "UNKNOWN" ] }, "NodeStatusType": { "name": "status", "in": "query", "type": "string", "description": "Status string for the compute node.", "enum": [ "RUNNING", "STOPPED", "FAILED", "UNKNOWN" ] }, "NodeId": { "name": "node-id", "in": "path", "required": true, "description": "UUID of a compute node.", "type": "string", "format": "uuid" }, "NodeProvisionRequest": { "name": "body", "in": "body", "required": true, "description": "Request to provision a compute node.", "schema": { "$ref": "#/definitions/NodeProvisionRequest" } }, "NodeUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "Request to update a compute node.", "schema": { "$ref": "#/definitions/NodeUpdateRequest" } }, "AttestationRequest": { "name": "body", "in": "body", "required": true, "description": "Certificate Signing Request.", "schema": { "$ref": "#/definitions/AttestationRequest" } }, "CertificateId": { "name": "cert-id", "in": "path", "required": true, "description": "UUID of an issued certificate.", "type": "string", "format": "uuid" }, "AppId": { "name": "app-id", "in": "path", "required": true, "description": "UUID of an app.", "type": "string", "format": "uuid" }, "AppRequest": { "name": "body", "in": "body", "required": true, "description": "Request to add a new application.", "schema": { "$ref": "#/definitions/AppRequest" } }, "AppUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "Status of an app for a compute node.", "schema": { "$ref": "#/definitions/AppUpdateRequest" } }, "AppBodyUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "Status of an app for a compute node.", "schema": { "$ref": "#/definitions/AppBodyUpdateRequest" } }, "PatchRequest": { "name": "body", "in": "body", "description": "Request to describe patch operations to be done on different fields of the resource", "schema": { "$ref": "#/definitions/PatchRequest" } }, "TaskId": { "name": "task-id", "in": "path", "required": true, "description": "UUID of a task.", "type": "string", "format": "uuid" }, "TaskUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/TaskUpdateRequest" } }, "ConvertAppBuildRequest": { "name": "body", "in": "body", "required": true, "description": "Add params of API - /v1/tools/converter/convert-app along with params of ConvertAppBuildRequest.", "schema": { "$ref": "#/definitions/ConvertAppBuildRequest" } }, "ZoneId": { "name": "zone-id", "in": "path", "required": true, "description": "UUID of a zone.", "type": "string", "format": "uuid" }, "RegistryId": { "name": "registry-id", "in": "path", "required": true, "description": "UUID of a registry.", "type": "string", "format": "uuid" }, "RegistryRequest": { "name": "body", "in": "body", "required": true, "description": "Request to add a registry to an account.", "schema": { "$ref": "#/definitions/RegistryRequest" } }, "UpdateRegistryRequest": { "name": "body", "in": "body", "required": true, "description": "Request to update registry details.", "schema": { "$ref": "#/definitions/UpdateRegistryRequest" } }, "DcapArtifactRequest": { "name": "body", "in": "body", "required": true, "description": "Request to get DCAP artifact.", "schema": { "$ref": "#/definitions/DcapArtifactRequest" } }, "AuthRequest": { "name": "body", "in": "body", "required": false, "description": "Request to authenticate.", "schema": { "$ref": "#/definitions/AuthRequest" } }, "WithTotals": { "name": "with_totals", "in": "query", "required": false, "default": false, "description": "Whether to return the `totals` field in the response", "type": "boolean" }, "GetClusterConfigParams": { "name": "future", "in": "query", "required": false, "default": false, "description": "Whether to get current or future cluster configuration", "type": "boolean" }, "SgxConversionRequest": { "name": "body", "in": "body", "required": true, "description": "Sgx conversion request.", "schema": { "$ref": "#/definitions/SgxConversionRequest" } }, "NitroEnclavesConversionRequest": { "name": "body", "in": "body", "required": true, "description": "Nitro enclaves conversion request.", "schema": { "$ref": "#/definitions/NitroEnclavesConversionRequest" } }, "AciConversionRequest": { "name": "body", "in": "body", "required": true, "description": "Aci conversion request.", "schema": { "$ref": "#/definitions/AciConversionRequest" } }, "ConverterSvcSgxConversionRequest": { "name": "body", "in": "body", "required": true, "description": "Sgx Converter Service conversion request.", "schema": { "$ref": "#/definitions/ConverterSvcSgxConversionRequest" } }, "ConverterSvcNitroEnclavesConversionRequest": { "name": "body", "in": "body", "required": true, "description": "Nitro enclaves Converter Service conversion request.", "schema": { "$ref": "#/definitions/ConverterSvcNitroEnclavesConversionRequest" } }, "DcapPlatformName": { "name": "platform", "in": "query", "description": "Platform name to specify SGX or TDX", "required": false, "type": "string", "enum": [ "SGX", "TDX" ] }, "ApplicationConfigId": { "name": "config-id", "in": "path", "required": true, "description": "Identity of an application config.", "type": "string" }, "CreateApplicationConfigRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/ApplicationConfig" } }, "UpdateApplicationConfigRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/UpdateApplicationConfigRequest" } }, "ApprovalRequestRequest": { "name": "body", "in": "body", "required": true, "description": "Request to create an approval request.", "schema": { "$ref": "#/definitions/ApprovalRequestRequest" } }, "RequestId": { "name": "request-id", "in": "path", "required": true, "description": "Approval Request Identifier", "type": "string", "format": "uuid" }, "ApproveRequest": { "name": "body", "in": "body", "required": false, "description": "Optional parameters for approval request", "schema": { "$ref": "#/definitions/ApproveRequest" } }, "DenyRequest": { "name": "body", "in": "body", "required": false, "description": "Optional parameters for deny request", "schema": { "$ref": "#/definitions/DenyRequest" } }, "ComputeClusterRequest": { "name": "body", "in": "body", "required": true, "description": "request to add compute clusters", "schema": { "$ref": "#/definitions/ComputeClusterRequest" } }, "ComputeClusterId": { "name": "cluster-id", "in": "path", "required": true, "description": "UUID of a compute cluster", "type": "string", "format": "uuid" }, "DatasetId": { "name": "dataset-id", "in": "path", "required": true, "description": "UUID of a dataset.", "type": "string", "format": "uuid" }, "CreateDatasetRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/CreateDatasetRequest" } }, "DatasetUpdateRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/DatasetUpdateRequest" } }, "WorkflowRunId": { "name": "run-id", "in": "path", "required": true, "description": "An instance of a running workflow.", "type": "string", "format": "uuid" }, "RuntimeConfigId": { "description": "Runtime config_id of final workflow app.", "name": "runtime_config_id", "in": "query", "required": false, "type": "string" }, "UpdateWorkflowRunRequest": { "name": "body", "in": "body", "required": true, "description": "Request to update a workflow run", "schema": { "$ref": "#/definitions/UpdateWorkflowRunRequest" } }, "CreateWorkflowVersionRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/CreateWorkflowVersionRequest" } }, "CreateFinalWorkflowGraphRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/CreateFinalWorkflowGraph" } }, "UpdateWorkflowVersionRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/UpdateWorkflowVersionRequest" } }, "UpdateFinalWorkflowName": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/UpdateFinalWorkflowNameRequest" } }, "CreateWorkflowGraphRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/CreateWorkflowGraph" } }, "UpdateWorkflowGraphRequest": { "name": "body", "in": "body", "required": true, "description": "", "schema": { "$ref": "#/definitions/UpdateWorkflowGraph" } }, "WorkflowGraphId": { "name": "graph-id", "in": "path", "required": true, "description": "UUID of a graph.", "type": "string", "format": "uuid" }, "WorkflowGraphVersion": { "name": "version", "in": "path", "required": true, "description": "Version of a graph.", "type": "string" }, "WorkflowGraphAppId": { "name": "app-id", "in": "path", "required": true, "description": "Version of a graph.", "type": "string" } } }