/* tslint:disable */ /* eslint-disable */ /** * Boat Public API v1 * Public JSON API for creating, operating, prompting, observing, and exposing Boat sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1. * * The version of the OpenAPI document: 1.0.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime'; import type { SelectedRepository } from './SelectedRepository'; import { SelectedRepositoryFromJSON, SelectedRepositoryFromJSONTyped, SelectedRepositoryToJSON, SelectedRepositoryToJSONTyped, } from './SelectedRepository'; import type { BoxEnvironmentVersionSummary } from './BoxEnvironmentVersionSummary'; import { BoxEnvironmentVersionSummaryFromJSON, BoxEnvironmentVersionSummaryFromJSONTyped, BoxEnvironmentVersionSummaryToJSON, BoxEnvironmentVersionSummaryToJSONTyped, } from './BoxEnvironmentVersionSummary'; import type { SecretFile } from './SecretFile'; import { SecretFileFromJSON, SecretFileFromJSONTyped, SecretFileToJSON, SecretFileToJSONTyped, } from './SecretFile'; /** * A named Boat environment. All flags/contents reflect the latest version. * @export * @interface BoxEnvironment */ export interface BoxEnvironment { /** * * @type {string} * @memberof BoxEnvironment */ id: string; /** * * @type {string} * @memberof BoxEnvironment */ name: string; /** * Exactly one environment is the default; boxes created without an `environment` name use it. * @type {boolean} * @memberof BoxEnvironment */ isDefault: boolean; /** * * @type {string} * @memberof BoxEnvironment */ latestVersionId: string | null; /** * When true the environment passes nothing to a box (repos, secrets, and all credentials withheld), overriding the fine-grained flags below. Use for boxes handed to third parties. * @type {boolean} * @memberof BoxEnvironment */ safeForThirdParties: boolean; /** * Attach the environment's GitHub repositories and the GitHub token (so `gh` and pushes work). Ignored when `safeForThirdParties` is true. * @type {boolean} * @memberof BoxEnvironment */ passGithub: boolean; /** * Attach the environment's env variables and secret files. Ignored when `safeForThirdParties` is true. * @type {boolean} * @memberof BoxEnvironment */ passSecrets: boolean; /** * Attach the box's own service/preview credentials. Ignored when `safeForThirdParties` is true. * @type {boolean} * @memberof BoxEnvironment */ passBoxCredentials: boolean; /** * Attach agent-provider credentials configured on the Agents page. Ignored when `safeForThirdParties` is true. * @type {boolean} * @memberof BoxEnvironment */ passAgentsCredentials: boolean; /** * The latest version's .env-style content. Treat as sensitive. * @type {string} * @memberof BoxEnvironment */ envContents: string; /** * * @type {Array} * @memberof BoxEnvironment */ secretFiles: Array; /** * Repositories attached to the latest version, with base branch and setup script. * @type {Array} * @memberof BoxEnvironment */ selectedRepositories?: Array; /** * * @type {Array} * @memberof BoxEnvironment */ versions: Array; } /** * Check if a given object implements the BoxEnvironment interface. */ export function instanceOfBoxEnvironment(value: object): value is BoxEnvironment { if (!('id' in value) || value['id'] === undefined) return false; if (!('name' in value) || value['name'] === undefined) return false; if (!('isDefault' in value) || value['isDefault'] === undefined) return false; if (!('latestVersionId' in value) || value['latestVersionId'] === undefined) return false; if (!('safeForThirdParties' in value) || value['safeForThirdParties'] === undefined) return false; if (!('passGithub' in value) || value['passGithub'] === undefined) return false; if (!('passSecrets' in value) || value['passSecrets'] === undefined) return false; if (!('passBoxCredentials' in value) || value['passBoxCredentials'] === undefined) return false; if (!('passAgentsCredentials' in value) || value['passAgentsCredentials'] === undefined) return false; if (!('envContents' in value) || value['envContents'] === undefined) return false; if (!('secretFiles' in value) || value['secretFiles'] === undefined) return false; if (!('versions' in value) || value['versions'] === undefined) return false; return true; } export function BoxEnvironmentFromJSON(json: any): BoxEnvironment { return BoxEnvironmentFromJSONTyped(json, false); } export function BoxEnvironmentFromJSONTyped(json: any, ignoreDiscriminator: boolean): BoxEnvironment { if (json == null) { return json; } return { 'id': json['id'], 'name': json['name'], 'isDefault': json['isDefault'], 'latestVersionId': json['latestVersionId'], 'safeForThirdParties': json['safeForThirdParties'], 'passGithub': json['passGithub'], 'passSecrets': json['passSecrets'], 'passBoxCredentials': json['passBoxCredentials'], 'passAgentsCredentials': json['passAgentsCredentials'], 'envContents': json['envContents'], 'secretFiles': ((json['secretFiles'] as Array).map(SecretFileFromJSON)), 'selectedRepositories': json['selectedRepositories'] == null ? undefined : ((json['selectedRepositories'] as Array).map(SelectedRepositoryFromJSON)), 'versions': ((json['versions'] as Array).map(BoxEnvironmentVersionSummaryFromJSON)), }; } export function BoxEnvironmentToJSON(json: any): BoxEnvironment { return BoxEnvironmentToJSONTyped(json, false); } export function BoxEnvironmentToJSONTyped(value?: BoxEnvironment | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'id': value['id'], 'name': value['name'], 'isDefault': value['isDefault'], 'latestVersionId': value['latestVersionId'], 'safeForThirdParties': value['safeForThirdParties'], 'passGithub': value['passGithub'], 'passSecrets': value['passSecrets'], 'passBoxCredentials': value['passBoxCredentials'], 'passAgentsCredentials': value['passAgentsCredentials'], 'envContents': value['envContents'], 'secretFiles': ((value['secretFiles'] as Array).map(SecretFileToJSON)), 'selectedRepositories': value['selectedRepositories'] == null ? undefined : ((value['selectedRepositories'] as Array).map(SelectedRepositoryToJSON)), 'versions': ((value['versions'] as Array).map(BoxEnvironmentVersionSummaryToJSON)), }; }