{ "auth": { "oauth2": { "scopes": { "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" } } } }, "basePath": "", "baseUrl": "https://composer.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Composer", "description": "Manages Apache Airflow environments on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/composer/", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "id": "composer:v1", "kind": "discovery#restDescription", "mtlsRootUrl": "https://composer.mtls.googleapis.com/", "name": "composer", "ownerDomain": "google.com", "ownerName": "Google", "parameters": { "$.xgafv": { "description": "V1 error format.", "enum": [ "1", "2" ], "enumDescriptions": [ "v1 error format", "v2 error format" ], "location": "query", "type": "string" }, "access_token": { "description": "OAuth access token.", "location": "query", "type": "string" }, "alt": { "default": "json", "description": "Data format for response.", "enum": [ "json", "media", "proto" ], "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], "location": "query", "type": "string" }, "callback": { "description": "JSONP", "location": "query", "type": "string" }, "fields": { "description": "Selector specifying which fields to include in a partial response.", "location": "query", "type": "string" }, "key": { "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", "location": "query", "type": "string" }, "oauth_token": { "description": "OAuth 2.0 token for the current user.", "location": "query", "type": "string" }, "prettyPrint": { "default": "true", "description": "Returns response with indentations and line breaks.", "location": "query", "type": "boolean" }, "quotaUser": { "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", "location": "query", "type": "string" }, "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "location": "query", "type": "string" }, "upload_protocol": { "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "location": "query", "type": "string" } }, "protocol": "rest", "resources": { "projects": { "resources": { "locations": { "resources": { "environments": { "methods": { "create": { "description": "Create a new environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments", "httpMethod": "POST", "id": "composer.projects.locations.environments.create", "parameterOrder": [ "parent" ], "parameters": { "parent": { "description": "The parent must be of the form\n\"projects/{projectId}/locations/{locationId}\".", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+parent}/environments", "request": { "$ref": "Environment" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "delete": { "description": "Delete an environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", "httpMethod": "DELETE", "id": "composer.projects.locations.environments.delete", "parameterOrder": [ "name" ], "parameters": { "name": { "description": "The environment to delete, in the form:\n\"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+name}", "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "get": { "description": "Get an existing environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", "httpMethod": "GET", "id": "composer.projects.locations.environments.get", "parameterOrder": [ "name" ], "parameters": { "name": { "description": "The resource name of the environment to get, in the form:\n\"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+name}", "response": { "$ref": "Environment" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "list": { "description": "List environments.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments", "httpMethod": "GET", "id": "composer.projects.locations.environments.list", "parameterOrder": [ "parent" ], "parameters": { "pageSize": { "description": "The maximum number of environments to return.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { "description": "The next_page_token value returned from a previous List request, if any.", "location": "query", "type": "string" }, "parent": { "description": "List environments in the given project and location, in the form:\n\"projects/{projectId}/locations/{locationId}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+parent}/environments", "response": { "$ref": "ListEnvironmentsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "patch": { "description": "Update an environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", "httpMethod": "PATCH", "id": "composer.projects.locations.environments.patch", "parameterOrder": [ "name" ], "parameters": { "name": { "description": "The relative resource name of the environment to update, in the form:\n\"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", "required": true, "type": "string" }, "updateMask": { "description": "Required. A comma-separated list of paths, relative to `Environment`, of\nfields to update.\nFor example, to set the version of scikit-learn to install in the\nenvironment to 0.19.0 and to remove an existing installation of\nnumpy, the `updateMask` parameter would include the following two\n`paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and\n\"config.softwareConfig.pypiPackages.numpy\". The included patch\nenvironment would specify the scikit-learn version as follows:\n\n {\n \"config\":{\n \"softwareConfig\":{\n \"pypiPackages\":{\n \"scikit-learn\":\"==0.19.0\"\n }\n }\n }\n }\n\nNote that in the above example, any existing PyPI packages\nother than scikit-learn and numpy will be unaffected.\n\nOnly one update type may be included in a single request's `updateMask`.\nFor example, one cannot update both the PyPI packages and\nlabels in the same request. However, it is possible to update multiple\nmembers of a map field simultaneously in the same request. For example,\nto set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming\nit already exists), one can\nprovide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\"\nand populate the patch environment as follows:\n\n {\n \"labels\":{\n \"label1\":\"new-label1-value\"\n \"label2\":\"new-label2-value\"\n }\n }\n\nNote that in the above example, any existing labels that are not\nincluded in the `updateMask` will be unaffected.\n\nIt is also possible to replace an entire map field by providing the\nmap field's path in the `updateMask`. The new value of the field will\nbe that which is provided in the patch environment. For example, to\ndelete all pre-existing user-specified PyPI packages and\ninstall botocore at version 1.7.14, the `updateMask` would contain\nthe path \"config.softwareConfig.pypiPackages\", and\nthe patch environment would be the following:\n\n {\n \"config\":{\n \"softwareConfig\":{\n \"pypiPackages\":{\n \"botocore\":\"==1.7.14\"\n }\n }\n }\n }\n\n**Note:** Only the following fields can be updated:\n\n
| Mask | \nPurpose | \n
| config.softwareConfig.pypiPackages\n | \nReplace all custom custom PyPI packages. If a replacement\n package map is not included in `environment`, all custom\n PyPI packages are cleared. It is an error to provide both this mask and a\n mask specifying an individual package. | \n
| config.softwareConfig.pypiPackages.packagename | \nUpdate the custom PyPI package packagename,\n preserving other packages. To delete the package, include it in\n `updateMask`, and omit the mapping for it in\n `environment.config.softwareConfig.pypiPackages`. It is an error\n to provide both a mask of this form and the\n \"config.softwareConfig.pypiPackages\" mask. | \n
| labels | \nReplace all environment labels. If a replacement labels map is not\n included in `environment`, all labels are cleared. It is an error to\n provide both this mask and a mask specifying one or more individual\n labels. | \n
| labels.labelName | \nSet the label named labelName, while preserving other\n labels. To delete the label, include it in `updateMask` and omit its\n mapping in `environment.labels`. It is an error to provide both a\n mask of this form and the \"labels\" mask. | \n
| config.nodeCount | \nHorizontally scale the number of nodes in the environment. An integer\n greater than or equal to 3 must be provided in the `config.nodeCount`\n field.\n | \n
| config.softwareConfig.airflowConfigOverrides | \nReplace all Apache Airflow config overrides. If a replacement config\n overrides map is not included in `environment`, all config overrides\n are cleared.\n It is an error to provide both this mask and a mask specifying one or\n more individual config overrides. | \n
| config.softwareConfig.airflowConfigOverrides.section-name\n | \nOverride the Apache Airflow config property name in the\n section named section, preserving other properties. To delete\n the property override, include it in `updateMask` and omit its mapping\n in `environment.config.softwareConfig.airflowConfigOverrides`.\n It is an error to provide both a mask of this form and the\n \"config.softwareConfig.airflowConfigOverrides\" mask. | \n
| config.softwareConfig.envVariables | \nReplace all environment variables. If a replacement environment\n variable map is not included in `environment`, all custom environment\n variables are cleared.\n It is an error to provide both this mask and a mask specifying one or\n more individual environment variables. | \n