{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://cloudfunctions.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Cloud Functions",
  "description": "Manages lightweight user-provided functions executed in response to events.",
  "discoveryVersion": "v1",
  "documentationLink": "https://cloud.google.com/functions",
  "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": "cloudfunctions:v1beta2",
  "kind": "discovery#restDescription",
  "name": "cloudfunctions",
  "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": {
    "operations": {
      "methods": {
        "get": {
          "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
          "flatPath": "v1beta2/operations/{operationsId}",
          "httpMethod": "GET",
          "id": "cloudfunctions.operations.get",
          "parameterOrder": [
            "name"
          ],
          "parameters": {
            "name": {
              "description": "The name of the operation resource.",
              "location": "path",
              "pattern": "^operations/[^/]+$",
              "required": true,
              "type": "string"
            }
          },
          "path": "v1beta2/{+name}",
          "response": {
            "$ref": "Operation"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        },
        "list": {
          "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to override the binding\nto use different resource name schemes, such as `users/*/operations`. To\noverride the binding, API services can add a binding such as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards compatibility, the default name includes the operations\ncollection id, however overriding users must ensure the name binding\nis the parent resource, without the operations collection id.",
          "flatPath": "v1beta2/operations",
          "httpMethod": "GET",
          "id": "cloudfunctions.operations.list",
          "parameterOrder": [],
          "parameters": {
            "filter": {
              "description": "The standard list filter.",
              "location": "query",
              "type": "string"
            },
            "name": {
              "description": "The name of the operation's parent resource.",
              "location": "query",
              "type": "string"
            },
            "pageSize": {
              "description": "The standard list page size.",
              "format": "int32",
              "location": "query",
              "type": "integer"
            },
            "pageToken": {
              "description": "The standard list page token.",
              "location": "query",
              "type": "string"
            }
          },
          "path": "v1beta2/operations",
          "response": {
            "$ref": "ListOperationsResponse"
          },
          "scopes": [
            "https://www.googleapis.com/auth/cloud-platform"
          ]
        }
      }
    },
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "description": "Lists information about the supported locations for this service.",
              "flatPath": "v1beta2/projects/{projectsId}/locations",
              "httpMethod": "GET",
              "id": "cloudfunctions.projects.locations.list",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "filter": {
                  "description": "The standard list filter.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "pageSize": {
                  "description": "The standard list page size.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "pageToken": {
                  "description": "The standard list page token.",
                  "location": "query",
                  "type": "string"
                }
              },
              "path": "v1beta2/{+name}/locations",
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          },
          "resources": {
            "functions": {
              "methods": {
                "call": {
                  "description": "Invokes synchronously deployed function. To be used for testing, very\nlimited traffic allowed.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:call",
                  "httpMethod": "POST",
                  "id": "cloudfunctions.projects.locations.functions.call",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the function to be called.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+name}:call",
                  "request": {
                    "$ref": "CallFunctionRequest"
                  },
                  "response": {
                    "$ref": "CallFunctionResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "create": {
                  "description": "Creates a new function. If a function with the given name already exists in\nthe specified project, the long running operation will return\n`ALREADY_EXISTS` error.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions",
                  "httpMethod": "POST",
                  "id": "cloudfunctions.projects.locations.functions.create",
                  "parameterOrder": [
                    "location"
                  ],
                  "parameters": {
                    "location": {
                      "description": "The project and location in which the function should be created, specified\nin the format `projects/*/locations/*`",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+location}/functions",
                  "request": {
                    "$ref": "CloudFunction"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "description": "Deletes a function with the given name from the specified project. If the\ngiven function is used by some trigger, the trigger will be updated to\nremove this function.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}",
                  "httpMethod": "DELETE",
                  "id": "cloudfunctions.projects.locations.functions.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the function which should be deleted.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+name}",
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "generateDownloadUrl": {
                  "description": "Returns a signed URL for downloading deployed function source code.\nThe URL is only valid for a limited period and should be used within\nminutes after generation.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl",
                  "httpMethod": "POST",
                  "id": "cloudfunctions.projects.locations.functions.generateDownloadUrl",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of function for which source code Google Cloud Storage signed\nURL should be generated.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+name}:generateDownloadUrl",
                  "request": {
                    "$ref": "GenerateDownloadUrlRequest"
                  },
                  "response": {
                    "$ref": "GenerateDownloadUrlResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "generateUploadUrl": {
                  "description": "Returns a signed URL for uploading a function source code.\nFor more information about the signed URL usage see:\nhttps://cloud.google.com/storage/docs/access-control/signed-urls\nOnce the function source code upload is complete, the used signed\nURL should be provided in CreateFunction or UpdateFunction request\nas a reference to the function source code.\n\nWhen uploading source code to the generated signed URL, please follow\nthese restrictions:\n\n* Source file type should be a zip file.\n* Source file size should not exceed 100MB limit.\n\nWhen making a HTTP PUT request, these two headers need to be specified:\n\n* `content-type: application/zip`\n* `x-goog-content-length-range: 0,104857600`",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl",
                  "httpMethod": "POST",
                  "id": "cloudfunctions.projects.locations.functions.generateUploadUrl",
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "description": "The project and location in which the Google Cloud Storage signed URL\nshould be generated, specified in the format `projects/*/locations/*`.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+parent}/functions:generateUploadUrl",
                  "request": {
                    "$ref": "GenerateUploadUrlRequest"
                  },
                  "response": {
                    "$ref": "GenerateUploadUrlResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "get": {
                  "description": "Returns a function with the given name from the requested project.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}",
                  "httpMethod": "GET",
                  "id": "cloudfunctions.projects.locations.functions.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the function which details should be obtained.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+name}",
                  "response": {
                    "$ref": "CloudFunction"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "list": {
                  "description": "Returns a list of functions that belong to the requested project.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions",
                  "httpMethod": "GET",
                  "id": "cloudfunctions.projects.locations.functions.list",
                  "parameterOrder": [
                    "location"
                  ],
                  "parameters": {
                    "location": {
                      "description": "The project and location from which the function should be listed,\nspecified in the format `projects/*/locations/*`\nIf you want to list functions in all locations, use \"-\" in place of a\nlocation.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Maximum number of functions to return per call.",
                      "format": "int32",
                      "location": "query",
                      "type": "integer"
                    },
                    "pageToken": {
                      "description": "The value returned by the last\n`ListFunctionsResponse`; indicates that\nthis is a continuation of a prior `ListFunctions` call, and that the\nsystem should return the next page of data.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+location}/functions",
                  "response": {
                    "$ref": "ListFunctionsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "update": {
                  "description": "Updates existing function.",
                  "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}",
                  "httpMethod": "PUT",
                  "id": "cloudfunctions.projects.locations.functions.update",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "The name of the function to be updated.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "path": "v1beta2/{+name}",
                  "request": {
                    "$ref": "CloudFunction"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "revision": "20181018",
  "rootUrl": "https://cloudfunctions.googleapis.com/",
  "schemas": {
    "CallFunctionRequest": {
      "description": "Request for the `CallFunction` method.",
      "id": "CallFunctionRequest",
      "properties": {
        "data": {
          "description": "Input to be passed to the function.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CallFunctionResponse": {
      "description": "Response of `CallFunction` method.",
      "id": "CallFunctionResponse",
      "properties": {
        "error": {
          "description": "Either system or user-function generated error. Set if execution\nwas not successful.",
          "type": "string"
        },
        "executionId": {
          "description": "Execution id of function invocation.",
          "type": "string"
        },
        "result": {
          "description": "Result populated for successful execution of synchronous function. Will\nnot be populated if function does not return a result through context.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "CloudFunction": {
      "description": "Describes a Cloud Function that contains user computation executed in\nresponse to an event. It encapsulate function and triggers configurations.",
      "id": "CloudFunction",
      "properties": {
        "availableMemoryMb": {
          "description": "The amount of memory in MB available for a function.\nDefaults to 256MB.",
          "format": "int32",
          "type": "integer"
        },
        "entryPoint": {
          "description": "The name of the function (as defined in source code) that will be\nexecuted. Defaults to the resource name suffix, if not specified. For\nbackward compatibility, if function with given name is not found, then the\nsystem will try to use function named \"function\".\nFor Node.js this is name of a function exported by the module specified\nin `source_location`.",
          "type": "string"
        },
        "environmentVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "**Beta Feature**\n\nEnvironment variables that shall be available during function execution.",
          "type": "object"
        },
        "eventTrigger": {
          "$ref": "EventTrigger",
          "description": "A source that fires events in response to a condition in another service."
        },
        "httpsTrigger": {
          "$ref": "HTTPSTrigger",
          "description": "An HTTPS endpoint type of source that can be triggered via URL."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels associated with this Cloud Function.",
          "type": "object"
        },
        "latestOperation": {
          "description": "Output only. Name of the most recent operation modifying the function. If\nthe function status is `DEPLOYING` or `DELETING`, then it points to the\nactive operation.",
          "type": "string"
        },
        "maxInstances": {
          "description": "The limit on the maximum number of function instances that may coexist at a\ngiven time. This feature is currently in alpha, available only for\nwhitelisted users.",
          "format": "int32",
          "type": "integer"
        },
        "name": {
          "description": "A user-defined name of the function. Function names must be unique\nglobally and match pattern `projects/*/locations/*/functions/*`",
          "type": "string"
        },
        "network": {
          "description": "The VPC Network that this cloud function can connect to. It can be\neither the fully-qualified URI, or the short name of the network resource.\nIf the short network name is used, the network must belong to the same\nproject. Otherwise, it must belong to a project within the same\norganization. The format of this field is either\n`projects/{project}/global/networks/{network}` or `{network}`, where\n{project} is a project id where the network is defined, and {network} is\nthe short name of the network.\n\nThis field is mutually exclusive with `vpc_connector` and will be replaced\nby it.\n\nSee [the VPC documentation](https://cloud.google.com/compute/docs/vpc) for\nmore information on connecting Cloud projects.\n\nThis feature is currently in alpha, available only for whitelisted users.",
          "type": "string"
        },
        "runtime": {
          "description": "The runtime in which the function is going to run. If empty, defaults to\nNode.js 6.",
          "type": "string"
        },
        "serviceAccount": {
          "description": "Output only. The service account of the function.",
          "type": "string"
        },
        "sourceArchiveUrl": {
          "description": "The Google Cloud Storage URL, starting with gs://, pointing to the zip\narchive which contains the function.",
          "type": "string"
        },
        "sourceRepository": {
          "$ref": "SourceRepository",
          "description": "The hosted repository where the function is defined."
        },
        "sourceRepositoryUrl": {
          "description": "The URL pointing to the hosted repository where the function is defined.\nThere are supported Cloud Source Repository URLs in the following\nformats:\n\nTo refer to a specific commit:\n`https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`\nTo refer to a moveable alias (branch):\n`https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*`\nIn particular, to refer to HEAD use `master` moveable alias.\nTo refer to a specific fixed alias (tag):\n`https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*`\n\nYou may omit `paths/*` if you want to use the main directory.",
          "type": "string"
        },
        "sourceUploadUrl": {
          "description": "The Google Cloud Storage signed URL used for source uploading, generated\nby google.cloud.functions.v1beta2.GenerateUploadUrl",
          "type": "string"
        },
        "status": {
          "description": "Output only. Status of the function deployment.",
          "enum": [
            "STATUS_UNSPECIFIED",
            "READY",
            "FAILED",
            "DEPLOYING",
            "DELETING"
          ],
          "enumDescriptions": [
            "Status not specified.",
            "Successfully deployed.",
            "Not deployed correctly - behavior is undefined. The item should be updated\nor deleted to move it out of this state.",
            "Creation or update in progress.",
            "Deletion in progress."
          ],
          "type": "string"
        },
        "timeout": {
          "description": "The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.",
          "format": "google-duration",
          "type": "string"
        },
        "updateTime": {
          "description": "Output only. The last update timestamp of a Cloud Function.",
          "format": "google-datetime",
          "type": "string"
        },
        "versionId": {
          "description": "Output only.\nThe version identifier of the Cloud Function. Each deployment attempt\nresults in a new version of a function being created.",
          "format": "int64",
          "type": "string"
        },
        "vpcConnector": {
          "description": "The VPC Network Connector that this cloud function can connect to. It can\nbe either the fully-qualified URI, or the short name of the network\nconnector resource. The format of this field is\n`projects/*/locations/*/connectors/*`\n\nThis field is mutually exclusive with `network` field and will eventually\nreplace it.\n\nSee [the VPC documentation](https://cloud.google.com/compute/docs/vpc) for\nmore information on connecting Cloud projects.\n\nThis feature is currently in alpha, available only for whitelisted users.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "EventTrigger": {
      "description": "Describes EventTrigger, used to request events be sent from another\nservice.",
      "id": "EventTrigger",
      "properties": {
        "eventType": {
          "description": "`event_type` names contain the service that is sending an event and the\nkind of event that was fired. Must be of the form\n`providers/*/eventTypes/*` e.g. Directly handle a Message published to\nGoogle Cloud Pub/Sub `providers/cloud.pubsub/eventTypes/topic.publish`.\n\nHandle an object changing in Google Cloud Storage:\n`providers/cloud.storage/eventTypes/object.change`\n\nHandle a write to the Firebase Realtime Database:\n`providers/google.firebase.database/eventTypes/ref.write`",
          "type": "string"
        },
        "failurePolicy": {
          "$ref": "FailurePolicy",
          "description": "Specifies policy for failed executions."
        },
        "resource": {
          "description": "Which instance of the source's service should send events. E.g. for Pub/Sub\nthis would be a Pub/Sub topic at `projects/*/topics/*`. For Google Cloud\nStorage this would be a bucket at `projects/*/buckets/*`. For any source\nthat only supports one instance per-project, this should be the name of the\nproject (`projects/*`)",
          "type": "string"
        },
        "service": {
          "description": "The hostname of the service that should be observed.\n\nIf no string is provided, the default service implementing the API will\nbe used. For example, `storage.googleapis.com` is the default for all\nevent types in the `google.storage` namespace.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FailurePolicy": {
      "description": "Describes the policy in case of function's execution failure.\nIf empty, then defaults to ignoring failures (i.e. not retrying them).",
      "id": "FailurePolicy",
      "properties": {
        "retry": {
          "$ref": "Retry",
          "description": "If specified, then the function will be retried in case of a failure."
        }
      },
      "type": "object"
    },
    "GenerateDownloadUrlRequest": {
      "description": "Request of `GenerateDownloadUrl` method.",
      "id": "GenerateDownloadUrlRequest",
      "properties": {
        "versionId": {
          "description": "The optional version of function.",
          "format": "uint64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateDownloadUrlResponse": {
      "description": "Response of `GenerateDownloadUrl` method.",
      "id": "GenerateDownloadUrlResponse",
      "properties": {
        "downloadUrl": {
          "description": "The generated Google Cloud Storage signed URL that should be used for\nfunction source code download.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GenerateUploadUrlRequest": {
      "description": "Request of `GenerateUploadUrl` method.",
      "id": "GenerateUploadUrlRequest",
      "properties": {},
      "type": "object"
    },
    "GenerateUploadUrlResponse": {
      "description": "Response of `GenerateUploadUrl` method.",
      "id": "GenerateUploadUrlResponse",
      "properties": {
        "uploadUrl": {
          "description": "The generated Google Cloud Storage signed URL that should be used for a\nfunction source code upload. The uploaded file should be a zip archive\nwhich contains a function.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "HTTPSTrigger": {
      "description": "Describes HTTPSTrigger, could be used to connect web hooks to function.",
      "id": "HTTPSTrigger",
      "properties": {
        "url": {
          "description": "Output only. The deployed url for the function.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListFunctionsResponse": {
      "description": "Response for the `ListFunctions` method.",
      "id": "ListFunctionsResponse",
      "properties": {
        "functions": {
          "description": "The functions that match the request.",
          "items": {
            "$ref": "CloudFunction"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "If not empty, indicates that there may be more functions that match\nthe request; this value should be passed in a new\ngoogle.cloud.functions.v1beta2.ListFunctionsRequest\nto get more functions.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListLocationsResponse": {
      "description": "The response message for Locations.ListLocations.",
      "id": "ListLocationsResponse",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "items": {
            "$ref": "Location"
          },
          "type": "array"
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ListOperationsResponse": {
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "items": {
            "$ref": "Operation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Location": {
      "description": "A resource that represents Google Cloud Platform location.",
      "id": "Location",
      "properties": {
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name.\nFor example, \"Tokyo\".",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cross-service attributes for the location. For example\n\n    {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "Service-specific metadata. For example the available capacity at the given\nlocation.",
          "type": "object"
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations.\nFor example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Operation": {
      "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
      "id": "Operation",
      "properties": {
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
          "type": "boolean"
        },
        "error": {
          "$ref": "Status",
          "description": "The error result of the operation in case of failure or cancellation."
        },
        "metadata": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
          "type": "object"
        },
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should have the format of `operations/some/unique/name`.",
          "type": "string"
        },
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The normal response of the operation in case of success.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "OperationMetadataV1": {
      "description": "Metadata describing an Operation",
      "id": "OperationMetadataV1",
      "properties": {
        "request": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The original request that started the operation.",
          "type": "object"
        },
        "target": {
          "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1",
          "type": "string"
        },
        "type": {
          "description": "Type of operation.",
          "enum": [
            "OPERATION_UNSPECIFIED",
            "CREATE_FUNCTION",
            "UPDATE_FUNCTION",
            "DELETE_FUNCTION"
          ],
          "enumDescriptions": [
            "Unknown operation type.",
            "Triggered by CreateFunction call",
            "Triggered by UpdateFunction call",
            "Triggered by DeleteFunction call."
          ],
          "type": "string"
        },
        "updateTime": {
          "description": "The last update timestamp of the operation.",
          "format": "google-datetime",
          "type": "string"
        },
        "versionId": {
          "description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "OperationMetadataV1Beta2": {
      "description": "Metadata describing an Operation",
      "id": "OperationMetadataV1Beta2",
      "properties": {
        "request": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "description": "The original request that started the operation.",
          "type": "object"
        },
        "target": {
          "description": "Target of the operation - for example\nprojects/project-1/locations/region-1/functions/function-1",
          "type": "string"
        },
        "type": {
          "description": "Type of operation.",
          "enum": [
            "OPERATION_UNSPECIFIED",
            "CREATE_FUNCTION",
            "UPDATE_FUNCTION",
            "DELETE_FUNCTION"
          ],
          "enumDescriptions": [
            "Unknown operation type.",
            "Triggered by CreateFunction call",
            "Triggered by UpdateFunction call",
            "Triggered by DeleteFunction call."
          ],
          "type": "string"
        },
        "updateTime": {
          "description": "The last update timestamp of the operation.",
          "format": "google-datetime",
          "type": "string"
        },
        "versionId": {
          "description": "Version id of the function created or updated by an API call.\nThis field is only pupulated for Create and Update operations.",
          "format": "int64",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Retry": {
      "description": "Describes the retry policy in case of function's execution failure.\nA function execution will be retried on any failure.\nA failed execution will be retried up to 7 days with an exponential backoff\n(capped at 10 seconds).\nRetried execution is charged as any other execution.",
      "id": "Retry",
      "properties": {},
      "type": "object"
    },
    "SourceRepository": {
      "description": "Describes the location of the function source in a remote repository.",
      "id": "SourceRepository",
      "properties": {
        "branch": {
          "description": "The name of the branch from which the function should be fetched.",
          "type": "string"
        },
        "deployedRevision": {
          "description": "Output only. The id of the revision that was resolved at the moment of\nfunction creation or update. For example when a user deployed from a\nbranch, it will be the revision id of the latest change on this branch at\nthat time. If user deployed from revision then this value will be always\nequal to the revision specified by the user.",
          "type": "string"
        },
        "repositoryUrl": {
          "description": "URL to the hosted repository where the function is defined. Only paths in\nhttps://source.developers.google.com domain are supported. The path should\ncontain the name of the repository.",
          "type": "string"
        },
        "revision": {
          "description": "The id of the revision that captures the state of the repository from\nwhich the function should be fetched.",
          "type": "string"
        },
        "sourcePath": {
          "description": "The path within the repository where the function is defined. The path\nshould point to the directory where Cloud Functions files are located. Use\n\"/\" if the function is defined directly in the root directory of a\nrepository.",
          "type": "string"
        },
        "tag": {
          "description": "The name of the tag that captures the state of the repository from\nwhich the function should be fetched.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Status": {
      "description": "The `Status` type defines a logical error model that is suitable for different\nprogramming environments, including REST APIs and RPC APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is designed to be:\n\n- Simple to use and understand for most users\n- Flexible enough to meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pieces of data: error code, error message,\nand error details. The error code should be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes if needed.  The\nerror message should be a developer-facing English message that helps\ndevelopers *understand* and *resolve* the error. If a localized user-facing\nerror message is needed, put the localized message in the error details or\nlocalize it in the client. The optional error details may contain arbitrary\ninformation about the error. There is a predefined set of error detail types\nin the package `google.rpc` that can be used for common error conditions.\n\n# Language mapping\n\nThe `Status` message is the logical representation of the error model, but it\nis not necessarily the actual wire format. When the `Status` message is\nexposed in different client libraries and different wire protocols, it can be\nmapped differently. For example, it will likely be mapped to some exceptions\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n\nThe error model and the `Status` message can be used in a variety of\nenvironments, either with or without APIs, to provide a\nconsistent developer experience across different environments.\n\nExample uses of this error model include:\n\n- Partial errors. If a service needs to return partial errors to the client,\n    it may embed the `Status` in the normal response to indicate the partial\n    errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step may\n    have a `Status` message for error reporting.\n\n- Batch operations. If a client uses batch request and batch response, the\n    `Status` message should be used directly inside batch response, one for\n    each error sub-response.\n\n- Asynchronous operations. If an API call embeds asynchronous operation\n    results in its response, the status of those operations should be\n    represented directly using the `Status` message.\n\n- Logging. If some API errors are stored in logs, the message `Status` could\n    be used directly after any stripping needed for security/privacy reasons.",
      "id": "Status",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        },
        "details": {
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.",
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "type": "array"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Cloud Functions API",
  "version": "v1beta2",
  "version_module": true
}