{
  "batchPath": "batch",
  "ownerDomain": "google.com",
  "documentationLink": "https://cloud.google.com/vpc/docs/configure-serverless-vpc-access",
  "version_module": true,
  "schemas": {
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "description": "The response message for Locations.ListLocations.",
      "type": "object",
      "properties": {
        "locations": {
          "description": "A list of locations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Location"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      }
    },
    "Location": {
      "id": "Location",
      "description": "A resource that represents a Google Cloud location.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "ListOperationsResponse": {
      "id": "ListOperationsResponse",
      "description": "The response message for Operations.ListOperations.",
      "type": "object",
      "properties": {
        "operations": {
          "description": "A list of operations that matches the specified filter in the request.",
          "type": "array",
          "items": {
            "$ref": "Operation"
          }
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "unreachable": {
          "description": "Unordered list. Unreachable resources. Populated when the request sets `ListOperationsRequest.return_partial_success` and reads across collections. For example, when attempting to list all resources across all supported locations.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "Status": {
      "id": "Status",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).",
      "type": "object",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "Connector": {
      "id": "Connector",
      "description": "Definition of a Serverless VPC Access connector.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The resource name in the format `projects/*/locations/*/connectors/*`.",
          "type": "string"
        },
        "network": {
          "description": "Optional. Name of a VPC network.",
          "type": "string"
        },
        "ipCidrRange": {
          "description": "Optional. The range of internal addresses that follows RFC 4632 notation. Example: `10.132.0.0/28`.",
          "type": "string"
        },
        "state": {
          "description": "Output only. State of the VPC access connector.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "Invalid state.",
            "Connector is deployed and ready to receive traffic.",
            "An Insert operation is in progress. Transient condition.",
            "A Delete operation is in progress. Transient condition.",
            "Connector is in a bad state, manual deletion recommended.",
            "The connector is being updated."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "READY",
            "CREATING",
            "DELETING",
            "ERROR",
            "UPDATING"
          ]
        },
        "minThroughput": {
          "description": "Minimum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 200 through 900. Must be lower than the value specified by --max-throughput. If both min-throughput and min-instances are provided, min-instances takes precedence over min-throughput. The use of `min-throughput` is discouraged in favor of `min-instances`.",
          "deprecated": true,
          "type": "integer",
          "format": "int32"
        },
        "maxThroughput": {
          "description": "Maximum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 300 through 1000. Must be higher than the value specified by --min-throughput. If both max-throughput and max-instances are provided, max-instances takes precedence over max-throughput. The use of `max-throughput` is discouraged in favor of `max-instances`.",
          "deprecated": true,
          "type": "integer",
          "format": "int32"
        },
        "connectedProjects": {
          "description": "Output only. List of projects using the connector.",
          "readOnly": true,
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "subnet": {
          "description": "Optional. The subnet in which to house the VPC Access Connector.",
          "$ref": "Subnet"
        },
        "machineType": {
          "description": "Machine type of VM Instance underlying connector. Default is e2-micro",
          "type": "string"
        },
        "minInstances": {
          "description": "Minimum value of instances in autoscaling group underlying the connector.",
          "type": "integer",
          "format": "int32"
        },
        "maxInstances": {
          "description": "Maximum value of instances in autoscaling group underlying the connector.",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "Subnet": {
      "id": "Subnet",
      "description": "The subnet in which to house the connector",
      "type": "object",
      "properties": {
        "name": {
          "description": "Optional. Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be {subnetName}",
          "type": "string"
        },
        "projectId": {
          "description": "Optional. Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued.",
          "type": "string"
        }
      }
    },
    "ListConnectorsResponse": {
      "id": "ListConnectorsResponse",
      "description": "Response for listing Serverless VPC Access connectors.",
      "type": "object",
      "properties": {
        "connectors": {
          "description": "List of Serverless VPC Access connectors.",
          "type": "array",
          "items": {
            "$ref": "Connector"
          }
        },
        "nextPageToken": {
          "description": "Continuation token.",
          "type": "string"
        }
      }
    },
    "OperationMetadataV1Alpha1": {
      "id": "OperationMetadataV1Alpha1",
      "description": "Metadata for google.longrunning.Operation.",
      "type": "object",
      "properties": {
        "method": {
          "description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1alpha1.Connectors.CreateConnector.",
          "readOnly": true,
          "type": "string"
        },
        "insertTime": {
          "description": "Output only. Time when the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. Time when the operation completed.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "OperationMetadataV1Beta1": {
      "id": "OperationMetadataV1Beta1",
      "description": "Metadata for google.longrunning.Operation.",
      "type": "object",
      "properties": {
        "method": {
          "description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1beta1.Connectors.CreateConnector.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Time when the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. Time when the operation completed.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "OperationMetadata": {
      "id": "OperationMetadata",
      "description": "Metadata for google.longrunning.Operation.",
      "type": "object",
      "properties": {
        "method": {
          "description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1.Connectors.CreateConnector.",
          "readOnly": true,
          "type": "string"
        },
        "createTime": {
          "description": "Output only. Time when the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. Time when the operation completed.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.",
          "readOnly": true,
          "type": "string"
        }
      }
    }
  },
  "canonicalName": "Serverless VPC Access",
  "fullyEncodeReservedExpansion": true,
  "basePath": "",
  "discoveryVersion": "v1",
  "revision": "20260218",
  "protocol": "rest",
  "mtlsRootUrl": "https://vpcaccess.mtls.googleapis.com/",
  "rootUrl": "https://vpcaccess.googleapis.com/",
  "servicePath": "",
  "kind": "discovery#restDescription",
  "name": "vpcaccess",
  "description": "API for managing VPC access connectors.",
  "id": "vpcaccess:v1",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "list": {
              "id": "vpcaccess.projects.locations.list",
              "path": "v1/{+name}/locations",
              "flatPath": "v1/projects/{projectsId}/locations",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "The resource that owns the locations collection, if applicable.",
                  "pattern": "^projects/[^/]+$",
                  "location": "path",
                  "required": true,
                  "type": "string"
                },
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "location": "query",
                  "type": "integer",
                  "format": "int32"
                },
                "pageToken": {
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "location": "query",
                  "type": "string"
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field. It is unsupported and is ignored unless explicitly documented otherwise. This is primarily for internal usage.",
                  "location": "query",
                  "repeated": true,
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "description": "Lists information about the supported locations for this service. This method can be called in two ways: * **List all public locations:** Use the path `GET /v1/locations`. * **List project-visible locations:** Use the path `GET /v1/projects/{project_id}/locations`. This may include public locations as well as private or other locations specifically visible to the project."
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "list": {
                  "id": "vpcaccess.projects.locations.operations.list",
                  "path": "v1/{+name}/operations",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation's parent resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "returnPartialSuccess": {
                      "description": "When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the ListOperationsResponse.unreachable field. This can only be `true` when reading across collections. For example, when `parent` is set to `\"projects/example/locations/-\"`. This field is not supported by default and will result in an `UNIMPLEMENTED` error if set unless explicitly documented otherwise in service or product specific documentation.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`."
                },
                "get": {
                  "id": "vpcaccess.projects.locations.operations.get",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service."
                }
              }
            },
            "connectors": {
              "methods": {
                "create": {
                  "id": "vpcaccess.projects.locations.connectors.create",
                  "path": "v1/{+parent}/connectors",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectors",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The project ID and location in which the configuration should be created, specified in the format `projects/*/locations/*`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "connectorId": {
                      "description": "Required. The ID to use for this connector.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "Connector"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Creates a Serverless VPC Access connector, returns an operation."
                },
                "patch": {
                  "id": "vpcaccess.projects.locations.connectors.patch",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "The resource name in the format `projects/*/locations/*/connectors/*`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "description": "The fields to update on the entry group. If absent or empty, all modifiable fields are updated.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "Connector"
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Updates a Serverless VPC Access connector, returns an operation."
                },
                "get": {
                  "id": "vpcaccess.projects.locations.connectors.get",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of a Serverless VPC Access connector to get.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Connector"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Gets a Serverless VPC Access connector. Returns NOT_FOUND if the resource does not exist."
                },
                "list": {
                  "id": "vpcaccess.projects.locations.connectors.list",
                  "path": "v1/{+parent}/connectors",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectors",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. The project and location from which the routes should be listed.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Maximum number of functions to return per call.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "Continuation token.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListConnectorsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Lists Serverless VPC Access connectors."
                },
                "delete": {
                  "id": "vpcaccess.projects.locations.connectors.delete",
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. Name of a Serverless VPC Access connector to delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Deletes a Serverless VPC Access connector. Returns NOT_FOUND if the resource does not exist."
                }
              }
            }
          }
        }
      }
    }
  },
  "version": "v1",
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "baseUrl": "https://vpcaccess.googleapis.com/",
  "title": "Serverless VPC Access API",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "ownerName": "Google",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "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"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "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"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "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"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  }
}
