{
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "kind": "discovery#restDescription",
  "id": "datastream:v1alpha1",
  "parameters": {
    "prettyPrint": {
      "default": "true",
      "type": "boolean",
      "location": "query",
      "description": "Returns response with indentations and line breaks."
    },
    "fields": {
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response.",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "key": {
      "location": "query",
      "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.",
      "type": "string"
    },
    "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.",
      "type": "string",
      "location": "query"
    },
    "oauth_token": {
      "location": "query",
      "description": "OAuth 2.0 token for the current user.",
      "type": "string"
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string",
      "enum": [
        "1",
        "2"
      ],
      "description": "V1 error format."
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "location": "query",
      "description": "OAuth access token.",
      "type": "string"
    },
    "uploadType": {
      "location": "query",
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "alt": {
      "location": "query",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    }
  },
  "description": "",
  "protocol": "rest",
  "basePath": "",
  "version": "v1alpha1",
  "baseUrl": "https://datastream.googleapis.com/",
  "servicePath": "",
  "name": "datastream",
  "discoveryVersion": "v1",
  "ownerName": "Google",
  "rootUrl": "https://datastream.googleapis.com/",
  "mtlsRootUrl": "https://datastream.mtls.googleapis.com/",
  "batchPath": "batch",
  "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."
        }
      }
    }
  },
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "methods": {
            "fetchStaticIps": {
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}:fetchStaticIps",
              "id": "datastream.projects.locations.fetchStaticIps",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "FetchStaticIpsResponse"
              },
              "httpMethod": "GET",
              "deprecated": true,
              "parameters": {
                "pageSize": {
                  "location": "query",
                  "description": "Maximum number of Ips to return, will likely not be specified.",
                  "type": "integer",
                  "format": "int32"
                },
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. The name resource of the Response type. Must be in the format `projects/*/locations/*`.",
                  "required": true,
                  "pattern": "^projects/[^/]+/locations/[^/]+$"
                },
                "pageToken": {
                  "description": "A page token, received from a previous `ListStaticIps` call. will likely not be specified.",
                  "location": "query",
                  "type": "string"
                }
              },
              "description": "The FetchStaticIps API call exposes the static IP addresses used by Datastream.",
              "path": "v1alpha1/{+name}:fetchStaticIps",
              "parameterOrder": [
                "name"
              ]
            },
            "get": {
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v1alpha1/{+name}",
              "httpMethod": "GET",
              "description": "Gets information about a location.",
              "id": "datastream.projects.locations.get",
              "parameters": {
                "name": {
                  "description": "Resource name for the location.",
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Location"
              }
            },
            "list": {
              "path": "v1alpha1/{+name}/locations",
              "parameters": {
                "filter": {
                  "location": "query",
                  "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).",
                  "type": "string"
                },
                "name": {
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "description": "The resource that owns the locations collection, if applicable."
                },
                "extraLocationTypes": {
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "type": "string",
                  "location": "query",
                  "repeated": true
                },
                "pageSize": {
                  "format": "int32",
                  "location": "query",
                  "type": "integer",
                  "description": "The maximum number of results to return. If not set, the service selects a default."
                },
                "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"
                }
              },
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "flatPath": "v1alpha1/projects/{projectsId}/locations",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "id": "datastream.projects.locations.list"
            }
          },
          "resources": {
            "operations": {
              "methods": {
                "delete": {
                  "httpMethod": "DELETE",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+name}",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "datastream.projects.locations.operations.delete",
                  "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "The name of the operation resource to be deleted."
                    }
                  },
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "list": {
                  "path": "v1alpha1/{+name}/operations",
                  "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
                  "parameters": {
                    "pageToken": {
                      "description": "The standard list page token.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The standard list page size.",
                      "type": "integer",
                      "format": "int32",
                      "location": "query"
                    },
                    "returnPartialSuccess": {
                      "location": "query",
                      "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.",
                      "type": "boolean"
                    },
                    "filter": {
                      "description": "The standard list filter.",
                      "location": "query",
                      "type": "string"
                    },
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "description": "The name of the operation's parent resource.",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "id": "datastream.projects.locations.operations.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "ListOperationsResponse"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations"
                },
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "required": true,
                      "description": "The name of the operation resource.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
                  "id": "datastream.projects.locations.operations.get",
                  "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.",
                  "path": "v1alpha1/{+name}",
                  "parameterOrder": [
                    "name"
                  ]
                },
                "cancel": {
                  "parameters": {
                    "name": {
                      "type": "string",
                      "required": true,
                      "description": "The name of the operation resource to be cancelled.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "id": "datastream.projects.locations.operations.cancel",
                  "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
                  "response": {
                    "$ref": "Empty"
                  },
                  "request": {
                    "$ref": "CancelOperationRequest"
                  },
                  "path": "v1alpha1/{+name}:cancel",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
                  "httpMethod": "POST"
                }
              }
            },
            "connectionProfiles": {
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles",
                  "deprecated": true,
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1alpha1/{+parent}/connectionProfiles",
                  "id": "datastream.projects.locations.connectionProfiles.list",
                  "description": "Use this method to list connection profiles created in a project and location.",
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "ListConnectionProfilesResponse"
                  },
                  "parameters": {
                    "pageToken": {
                      "type": "string",
                      "description": "Page token received from a previous `ListConnectionProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConnectionProfiles` must match the call that provided the page token.",
                      "location": "query"
                    },
                    "filter": {
                      "type": "string",
                      "location": "query",
                      "description": "Filter request."
                    },
                    "parent": {
                      "description": "Required. The parent that owns the collection of connection profiles.",
                      "type": "string",
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "orderBy": {
                      "type": "string",
                      "location": "query",
                      "description": "Order by fields for the result."
                    },
                    "pageSize": {
                      "description": "Maximum number of connection profiles to return. If unspecified, at most 50 connection profiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                      "format": "int32",
                      "type": "integer",
                      "location": "query"
                    }
                  }
                },
                "discover": {
                  "id": "datastream.projects.locations.connectionProfiles.discover",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent resource of the ConnectionProfile type. Must be in the format `projects/*/locations/*`.",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path"
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles:discover",
                  "description": "Use this method to discover a connection profile. The discover API call exposes the data objects and metadata belonging to the profile. Typically, a request returns children data objects under a parent data object that's optionally supplied in the request.",
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "DiscoverConnectionProfileResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "request": {
                    "$ref": "DiscoverConnectionProfileRequest"
                  },
                  "deprecated": true,
                  "path": "v1alpha1/{+parent}/connectionProfiles:discover",
                  "httpMethod": "POST"
                },
                "patch": {
                  "httpMethod": "PATCH",
                  "deprecated": true,
                  "description": "Use this method to update the parameters of a connection profile.",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "id": "datastream.projects.locations.connectionProfiles.patch",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "updateMask": {
                      "description": "Optional. Field mask is used to specify the fields to be overwritten in the ConnectionProfile resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
                      "format": "google-fieldmask",
                      "type": "string",
                      "location": "query"
                    },
                    "validateOnly": {
                      "location": "query",
                      "type": "boolean",
                      "description": "Optional. Only validate the connection profile, but do not update any resources. The default is false."
                    },
                    "name": {
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$",
                      "description": "Output only. The resource's name.",
                      "location": "path"
                    }
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "ConnectionProfile"
                  }
                },
                "delete": {
                  "httpMethod": "DELETE",
                  "deprecated": true,
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Use this method to delete a connection profile..",
                  "path": "v1alpha1/{+name}",
                  "id": "datastream.projects.locations.connectionProfiles.delete",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}",
                  "parameters": {
                    "requestId": {
                      "type": "string",
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query"
                    },
                    "name": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$",
                      "required": true,
                      "type": "string",
                      "description": "Required. The name of the connection profile resource to delete.",
                      "location": "path"
                    }
                  }
                },
                "get": {
                  "description": "Use this method to get details about a connection profile.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}",
                  "parameterOrder": [
                    "name"
                  ],
                  "deprecated": true,
                  "response": {
                    "$ref": "ConnectionProfile"
                  },
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "required": true,
                      "description": "Required. The name of the connection profile resource to get.",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/connectionProfiles/[^/]+$",
                      "type": "string"
                    }
                  },
                  "path": "v1alpha1/{+name}",
                  "id": "datastream.projects.locations.connectionProfiles.get"
                },
                "create": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "path": "v1alpha1/{+parent}/connectionProfiles",
                  "id": "datastream.projects.locations.connectionProfiles.create",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/connectionProfiles",
                  "parameters": {
                    "requestId": {
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string",
                      "location": "query"
                    },
                    "connectionProfileId": {
                      "description": "Required. The connection profile identifier.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "location": "path",
                      "description": "Required. The parent that owns the collection of ConnectionProfiles.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Use this method to create a connection profile in a project and location.",
                  "request": {
                    "$ref": "ConnectionProfile"
                  },
                  "deprecated": true,
                  "httpMethod": "POST"
                }
              },
              "deprecated": true
            },
            "streams": {
              "resources": {
                "objects": {
                  "methods": {
                    "get": {
                      "deprecated": true,
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}",
                      "httpMethod": "GET",
                      "response": {
                        "$ref": "StreamObject"
                      },
                      "description": "Use this method to get details about a stream object.",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "datastream.projects.locations.streams.objects.get",
                      "path": "v1alpha1/{+name}",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "name": {
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$",
                          "type": "string",
                          "description": "Required. The name of the stream object resource to get.",
                          "location": "path"
                        }
                      }
                    },
                    "list": {
                      "path": "v1alpha1/{+parent}/objects",
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects",
                      "response": {
                        "$ref": "ListStreamObjectsResponse"
                      },
                      "deprecated": true,
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "required": true,
                          "description": "Required. The parent stream that owns the collection of objects.",
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$"
                        },
                        "pageSize": {
                          "location": "query",
                          "description": "Maximum number of objects to return. Default is 50. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "pageToken": {
                          "description": "Page token received from a previous `ListStreamObjectsRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListStreamObjectsRequest` must match the call that provided the page token.",
                          "type": "string",
                          "location": "query"
                        }
                      },
                      "description": "Use this method to list the objects of a specific stream.",
                      "parameterOrder": [
                        "parent"
                      ],
                      "id": "datastream.projects.locations.streams.objects.list",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ]
                    },
                    "stopBackfillJob": {
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "parameters": {
                        "object": {
                          "type": "string",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$",
                          "description": "Required. The name of the stream object resource to stop the backfill job for.",
                          "location": "path"
                        }
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:stopBackfillJob",
                      "httpMethod": "POST",
                      "deprecated": true,
                      "description": "Stops the backfill job for the specified stream object.",
                      "path": "v1alpha1/{+object}:stopBackfillJob",
                      "response": {
                        "$ref": "StopBackfillJobResponse"
                      },
                      "id": "datastream.projects.locations.streams.objects.stopBackfillJob",
                      "parameterOrder": [
                        "object"
                      ]
                    },
                    "startBackfillJob": {
                      "parameters": {
                        "object": {
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+/objects/[^/]+$",
                          "type": "string",
                          "description": "Required. The name of the stream object resource to start a backfill job for.",
                          "location": "path"
                        }
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}/objects/{objectsId}:startBackfillJob",
                      "path": "v1alpha1/{+object}:startBackfillJob",
                      "id": "datastream.projects.locations.streams.objects.startBackfillJob",
                      "response": {
                        "$ref": "StartBackfillJobResponse"
                      },
                      "description": "Starts backfill job for the specified stream object.",
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "POST",
                      "parameterOrder": [
                        "object"
                      ],
                      "deprecated": true
                    }
                  },
                  "deprecated": true
                }
              },
              "methods": {
                "list": {
                  "path": "v1alpha1/{+parent}/streams",
                  "id": "datastream.projects.locations.streams.list",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "deprecated": true,
                  "httpMethod": "GET",
                  "description": "Use this method to list streams in a project and location.",
                  "parameterOrder": [
                    "parent"
                  ],
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams",
                  "parameters": {
                    "pageSize": {
                      "type": "integer",
                      "format": "int32",
                      "location": "query",
                      "description": "Maximum number of streams to return. If unspecified, at most 50 streams will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000."
                    },
                    "orderBy": {
                      "type": "string",
                      "location": "query",
                      "description": "Order by fields for the result."
                    },
                    "pageToken": {
                      "description": "Page token received from a previous `ListStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListStreams` must match the call that provided the page token.",
                      "type": "string",
                      "location": "query"
                    },
                    "filter": {
                      "description": "Filter request.",
                      "location": "query",
                      "type": "string"
                    },
                    "parent": {
                      "location": "path",
                      "type": "string",
                      "description": "Required. The parent that owns the collection of streams.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    }
                  },
                  "response": {
                    "$ref": "ListStreamsResponse"
                  }
                },
                "fetchErrors": {
                  "path": "v1alpha1/{+stream}:fetchErrors",
                  "parameters": {
                    "stream": {
                      "type": "string",
                      "description": "Name of the Stream resource for which to fetch any errors.",
                      "location": "path",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$"
                    }
                  },
                  "request": {
                    "$ref": "FetchErrorsRequest"
                  },
                  "id": "datastream.projects.locations.streams.fetchErrors",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameterOrder": [
                    "stream"
                  ],
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Use this method to fetch any errors associated with a stream.",
                  "httpMethod": "POST",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}:fetchErrors",
                  "deprecated": true
                },
                "patch": {
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "parameters": {
                    "name": {
                      "location": "path",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$",
                      "type": "string",
                      "description": "Output only. The stream's name."
                    },
                    "force": {
                      "description": "Optional. Execute the update without validating it.",
                      "location": "query",
                      "type": "boolean"
                    },
                    "updateMask": {
                      "format": "google-fieldmask",
                      "description": "Optional. Field mask is used to specify the fields to be overwritten in the stream resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.",
                      "location": "query",
                      "type": "string"
                    },
                    "validateOnly": {
                      "location": "query",
                      "description": "Optional. Only validate the stream with the changes, without actually updating it. The default is false.",
                      "type": "boolean"
                    },
                    "requestId": {
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "deprecated": true,
                  "response": {
                    "$ref": "Operation"
                  },
                  "request": {
                    "$ref": "Stream"
                  },
                  "path": "v1alpha1/{+name}",
                  "description": "Use this method to update the configuration of a stream.",
                  "httpMethod": "PATCH",
                  "id": "datastream.projects.locations.streams.patch",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}"
                },
                "get": {
                  "description": "Use this method to get details about a stream.",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "GET",
                  "deprecated": true,
                  "parameters": {
                    "name": {
                      "location": "path",
                      "type": "string",
                      "description": "Required. The name of the stream resource to get.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "Stream"
                  },
                  "id": "datastream.projects.locations.streams.get",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}",
                  "path": "v1alpha1/{+name}"
                },
                "create": {
                  "request": {
                    "$ref": "Stream"
                  },
                  "description": "Use this method to create a stream.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams",
                  "path": "v1alpha1/{+parent}/streams",
                  "response": {
                    "$ref": "Operation"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "force": {
                      "type": "boolean",
                      "description": "Optional. Create the stream without validating it.",
                      "location": "query"
                    },
                    "requestId": {
                      "location": "query",
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "validateOnly": {
                      "location": "query",
                      "type": "boolean",
                      "description": "Optional. Only validate the stream, but do not create any resources. The default is false."
                    },
                    "parent": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path",
                      "description": "Required. The parent that owns the collection of streams."
                    },
                    "streamId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. The stream identifier."
                    }
                  },
                  "deprecated": true,
                  "httpMethod": "POST",
                  "id": "datastream.projects.locations.streams.create"
                },
                "delete": {
                  "deprecated": true,
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1alpha1/{+name}",
                  "id": "datastream.projects.locations.streams.delete",
                  "httpMethod": "DELETE",
                  "response": {
                    "$ref": "Operation"
                  },
                  "description": "Use this method to delete a stream.",
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/streams/[^/]+$",
                      "type": "string",
                      "description": "Required. The name of the stream resource to delete."
                    }
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/streams/{streamsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                }
              }
            },
            "privateConnections": {
              "resources": {
                "routes": {
                  "deprecated": true,
                  "methods": {
                    "get": {
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "deprecated": true,
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "name"
                      ],
                      "description": "Use this method to get details about a route.",
                      "id": "datastream.projects.locations.privateConnections.routes.get",
                      "response": {
                        "$ref": "Route"
                      },
                      "path": "v1alpha1/{+name}",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the Route resource to get.",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+/routes/[^/]+$",
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}"
                    },
                    "delete": {
                      "description": "Use this method to delete a route.",
                      "id": "datastream.projects.locations.privateConnections.routes.delete",
                      "httpMethod": "DELETE",
                      "deprecated": true,
                      "path": "v1alpha1/{+name}",
                      "parameters": {
                        "name": {
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+/routes/[^/]+$",
                          "description": "Required. The name of the Route resource to delete.",
                          "required": true,
                          "type": "string"
                        },
                        "requestId": {
                          "type": "string",
                          "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "location": "query"
                        }
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes/{routesId}"
                    },
                    "list": {
                      "httpMethod": "GET",
                      "parameterOrder": [
                        "parent"
                      ],
                      "deprecated": true,
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes",
                      "id": "datastream.projects.locations.privateConnections.routes.list",
                      "response": {
                        "$ref": "ListRoutesResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "path": "v1alpha1/{+parent}/routes",
                      "parameters": {
                        "pageToken": {
                          "type": "string",
                          "description": "Page token received from a previous `ListRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRoutes` must match the call that provided the page token.",
                          "location": "query"
                        },
                        "filter": {
                          "description": "Filter request.",
                          "location": "query",
                          "type": "string"
                        },
                        "orderBy": {
                          "description": "Order by fields for the result.",
                          "type": "string",
                          "location": "query"
                        },
                        "pageSize": {
                          "format": "int32",
                          "description": "Maximum number of Routes to return. The service may return fewer than this value. If unspecified, at most 50 Routes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                          "type": "integer",
                          "location": "query"
                        },
                        "parent": {
                          "location": "path",
                          "type": "string",
                          "description": "Required. The parent that owns the collection of Routess.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$",
                          "required": true
                        }
                      },
                      "description": "Use this method to list routes created for a private connectivity in a project and location."
                    },
                    "create": {
                      "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}/routes",
                      "description": "Use this method to create a route for a private connectivity in a project and location.",
                      "response": {
                        "$ref": "Operation"
                      },
                      "parameters": {
                        "routeId": {
                          "type": "string",
                          "description": "Required. The Route identifier.",
                          "location": "query"
                        },
                        "requestId": {
                          "location": "query",
                          "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                          "type": "string"
                        },
                        "parent": {
                          "type": "string",
                          "required": true,
                          "description": "Required. The parent that owns the collection of Routes.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$",
                          "location": "path"
                        }
                      },
                      "deprecated": true,
                      "httpMethod": "POST",
                      "path": "v1alpha1/{+parent}/routes",
                      "request": {
                        "$ref": "Route"
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "id": "datastream.projects.locations.privateConnections.routes.create"
                    }
                  }
                }
              },
              "methods": {
                "create": {
                  "id": "datastream.projects.locations.privateConnections.create",
                  "description": "Use this method to create a private connectivity configuration.",
                  "response": {
                    "$ref": "Operation"
                  },
                  "deprecated": true,
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections",
                  "httpMethod": "POST",
                  "request": {
                    "$ref": "PrivateConnection"
                  },
                  "path": "v1alpha1/{+parent}/privateConnections",
                  "parameters": {
                    "requestId": {
                      "location": "query",
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "type": "string"
                    },
                    "privateConnectionId": {
                      "type": "string",
                      "location": "query",
                      "description": "Required. The private connectivity identifier."
                    },
                    "parent": {
                      "description": "Required. The parent that owns the collection of PrivateConnections.",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ]
                },
                "delete": {
                  "parameters": {
                    "requestId": {
                      "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
                      "location": "query",
                      "type": "string"
                    },
                    "force": {
                      "type": "boolean",
                      "location": "query",
                      "description": "Optional. If set to true, any child routes that belong to this PrivateConnection will also be deleted."
                    },
                    "name": {
                      "type": "string",
                      "description": "Required. The name of the private connectivity configuration to delete.",
                      "required": true,
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$"
                    }
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "Use this method to delete a private connectivity configuration.",
                  "id": "datastream.projects.locations.privateConnections.delete",
                  "response": {
                    "$ref": "Operation"
                  },
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "deprecated": true,
                  "path": "v1alpha1/{+name}",
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}"
                },
                "list": {
                  "description": "Use this method to list private connectivity configurations in a project and location.",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "GET",
                  "path": "v1alpha1/{+parent}/privateConnections",
                  "deprecated": true,
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "required": true,
                      "description": "Required. The parent that owns the collection of private connectivity configurations.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "Maximum number of private connectivity configurations to return. If unspecified, at most 50 private connectivity configurations that will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "orderBy": {
                      "type": "string",
                      "description": "Order by fields for the result.",
                      "location": "query"
                    },
                    "filter": {
                      "description": "Filter request.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageToken": {
                      "description": "Page token received from a previous `ListPrivateConnections` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnections` must match the call that provided the page token.",
                      "type": "string",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "ListPrivateConnectionsResponse"
                  },
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections",
                  "id": "datastream.projects.locations.privateConnections.list"
                },
                "get": {
                  "parameters": {
                    "name": {
                      "location": "path",
                      "type": "string",
                      "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$",
                      "description": "Required. The name of the private connectivity configuration to get.",
                      "required": true
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Use this method to get details about a private connectivity configuration.",
                  "id": "datastream.projects.locations.privateConnections.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}",
                  "response": {
                    "$ref": "PrivateConnection"
                  },
                  "deprecated": true,
                  "path": "v1alpha1/{+name}",
                  "httpMethod": "GET"
                }
              }
            }
          }
        }
      }
    }
  },
  "canonicalName": "Datastream",
  "endpoints": [
    {
      "location": "africa-south1",
      "endpointUrl": "https://datastream.africa-south1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.asia-east1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-east1"
    },
    {
      "location": "asia-east2",
      "endpointUrl": "https://datastream.asia-east2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-northeast1",
      "endpointUrl": "https://datastream.asia-northeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-northeast2",
      "endpointUrl": "https://datastream.asia-northeast2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-northeast3",
      "endpointUrl": "https://datastream.asia-northeast3.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.asia-south1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-south1"
    },
    {
      "location": "asia-south2",
      "endpointUrl": "https://datastream.asia-south2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-southeast1",
      "endpointUrl": "https://datastream.asia-southeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "asia-southeast2",
      "endpointUrl": "https://datastream.asia-southeast2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.asia-southeast3.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "asia-southeast3"
    },
    {
      "location": "australia-southeast1",
      "endpointUrl": "https://datastream.australia-southeast1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.australia-southeast2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "australia-southeast2"
    },
    {
      "endpointUrl": "https://datastream.europe-central2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-central2"
    },
    {
      "location": "europe-north1",
      "endpointUrl": "https://datastream.europe-north1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-north2",
      "endpointUrl": "https://datastream.europe-north2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-southwest1",
      "endpointUrl": "https://datastream.europe-southwest1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.europe-west1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west1"
    },
    {
      "endpointUrl": "https://datastream.europe-west10.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west10"
    },
    {
      "location": "europe-west12",
      "endpointUrl": "https://datastream.europe-west12.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.europe-west15.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west15"
    },
    {
      "endpointUrl": "https://datastream.europe-west2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west2"
    },
    {
      "endpointUrl": "https://datastream.europe-west3.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west3"
    },
    {
      "endpointUrl": "https://datastream.europe-west4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west4"
    },
    {
      "endpointUrl": "https://datastream.europe-west6.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "europe-west6"
    },
    {
      "location": "europe-west8",
      "endpointUrl": "https://datastream.europe-west8.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west9",
      "endpointUrl": "https://datastream.europe-west9.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "me-central1",
      "endpointUrl": "https://datastream.me-central1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.me-central2.rep.googleapis.com/",
      "location": "me-central2",
      "description": "Regional Endpoint"
    },
    {
      "location": "me-west1",
      "endpointUrl": "https://datastream.me-west1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.northamerica-northeast1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "northamerica-northeast1"
    },
    {
      "location": "northamerica-northeast2",
      "endpointUrl": "https://datastream.northamerica-northeast2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.northamerica-south1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "northamerica-south1"
    },
    {
      "location": "southamerica-east1",
      "endpointUrl": "https://datastream.southamerica-east1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "southamerica-west1",
      "endpointUrl": "https://datastream.southamerica-west1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.us-central1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-central1"
    },
    {
      "endpointUrl": "https://datastream.us-east1.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east1"
    },
    {
      "endpointUrl": "https://datastream.us-east4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east4"
    },
    {
      "endpointUrl": "https://datastream.us-east5.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east5"
    },
    {
      "location": "us-east7",
      "endpointUrl": "https://datastream.us-east7.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "us-south1",
      "endpointUrl": "https://datastream.us-south1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "location": "us-west1",
      "endpointUrl": "https://datastream.us-west1.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.us-west2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-west2"
    },
    {
      "location": "us-west3",
      "endpointUrl": "https://datastream.us-west3.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://datastream.us-west4.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-west4"
    }
  ],
  "title": "Datastream API",
  "version_module": true,
  "fullyEncodeReservedExpansion": true,
  "documentationLink": "https://cloud.google.com/datastream/",
  "revision": "20260923",
  "ownerDomain": "google.com",
  "schemas": {
    "ResourceInfo": {
      "description": "Describes the resource that is being accessed.",
      "id": "ResourceInfo",
      "type": "object",
      "properties": {
        "resourceType": {
          "type": "string",
          "description": "A name for the type of resource being accessed, e.g. \"sql table\", \"cloud storage bucket\", \"file\", \"Google calendar\"; or the type URL of the resource: e.g. \"type.googleapis.com/google.pubsub.v1.Topic\"."
        },
        "owner": {
          "description": "The owner of the resource (optional). For example, \"user:\" or \"project:\".",
          "type": "string"
        },
        "resourceName": {
          "description": "The name of the resource being accessed. For example, a shared calendar name: \"example.com_4fghdhgsrgh@group.calendar.google.com\", if the current error is google.rpc.Code.PERMISSION_DENIED.",
          "type": "string"
        },
        "description": {
          "description": "Describes what error is encountered when accessing this resource. For example, updating a cloud project may require the `writer` permission on the developer console project.",
          "type": "string"
        }
      }
    },
    "PreconditionFailure": {
      "description": "Describes what preconditions have failed. For example, if an RPC failed because it required the Terms of Service to be acknowledged, it could list the terms of service violation in the PreconditionFailure message.",
      "type": "object",
      "id": "PreconditionFailure",
      "properties": {
        "violations": {
          "description": "Describes all precondition violations.",
          "items": {
            "$ref": "PreconditionFailureViolation"
          },
          "type": "array"
        }
      }
    },
    "ErrorInfo": {
      "properties": {
        "domain": {
          "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".",
          "type": "string"
        },
        "reason": {
          "description": "The reason for the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{\"instanceLimit\": \"100/request\"}`, should be returned as, `{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of instances that can be created in a single (batch) request."
        }
      },
      "type": "object",
      "id": "ErrorInfo",
      "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }"
    },
    "GcsProfile": {
      "properties": {
        "rootPath": {
          "description": "The root path inside the Cloud Storage bucket.",
          "type": "string"
        },
        "bucketName": {
          "type": "string",
          "description": "Required. The full project and resource path for Cloud Storage bucket including the name."
        }
      },
      "type": "object",
      "id": "GcsProfile",
      "description": "Cloud Storage bucket profile."
    },
    "SourceConfig": {
      "type": "object",
      "properties": {
        "mysqlSourceConfig": {
          "description": "MySQL data source configuration",
          "$ref": "MysqlSourceConfig"
        },
        "sourceConnectionProfileName": {
          "description": "Required. Source connection profile identifier.",
          "type": "string"
        },
        "oracleSourceConfig": {
          "description": "Oracle data source configuration",
          "$ref": "OracleSourceConfig"
        }
      },
      "description": "The configuration of the stream source.",
      "id": "SourceConfig"
    },
    "Location": {
      "properties": {
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object"
        },
        "name": {
          "type": "string",
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`"
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object"
        },
        "locationId": {
          "description": "The canonical id for this location. For example: `\"us-east1\"`.",
          "type": "string"
        }
      },
      "description": "A resource that represents a Google Cloud location.",
      "id": "Location",
      "type": "object"
    },
    "AvroFileFormat": {
      "properties": {},
      "type": "object",
      "description": "AVRO file format configuration.",
      "id": "AvroFileFormat"
    },
    "Validation": {
      "id": "Validation",
      "properties": {
        "message": {
          "description": "Messages reflecting the validation results.",
          "items": {
            "$ref": "ValidationMessage"
          },
          "type": "array"
        },
        "status": {
          "enumDescriptions": [
            "Unspecified status.",
            "Validation did not execute.",
            "Validation failed.",
            "Validation passed."
          ],
          "type": "string",
          "enum": [
            "STATUS_UNSPECIFIED",
            "NOT_EXECUTED",
            "FAILED",
            "PASSED"
          ],
          "description": "Validation execution status."
        },
        "code": {
          "description": "A custom code identifying this validation.",
          "type": "string"
        },
        "description": {
          "description": "A short description of the validation.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "MysqlObjectIdentifier": {
      "properties": {
        "table": {
          "description": "Required. The table name.",
          "type": "string"
        },
        "database": {
          "description": "Required. The database name.",
          "type": "string"
        }
      },
      "description": "Mysql data source object identifier.",
      "id": "MysqlObjectIdentifier",
      "type": "object"
    },
    "ListPrivateConnectionsResponse": {
      "properties": {
        "privateConnections": {
          "items": {
            "$ref": "PrivateConnection"
          },
          "description": "List of private connectivity configurations.",
          "type": "array"
        },
        "unreachable": {
          "type": "array",
          "description": "Locations that could not be reached.",
          "items": {
            "type": "string"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      },
      "type": "object",
      "id": "ListPrivateConnectionsResponse"
    },
    "ListOperationsResponse": {
      "properties": {
        "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"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "The standard List next-page token."
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "Operation"
          },
          "description": "A list of operations that matches the specified filter in the request."
        }
      },
      "description": "The response message for Operations.ListOperations.",
      "id": "ListOperationsResponse",
      "type": "object"
    },
    "MysqlRdbms": {
      "description": "MySQL database structure",
      "type": "object",
      "id": "MysqlRdbms",
      "properties": {
        "mysqlDatabases": {
          "type": "array",
          "items": {
            "$ref": "MysqlDatabase"
          },
          "description": "Mysql databases on the server"
        }
      }
    },
    "Empty": {
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "Empty",
      "type": "object",
      "properties": {}
    },
    "Operation": {
      "id": "Operation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "response": {
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "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"
        },
        "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"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "Status"
        },
        "metadata": {
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          },
          "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."
        },
        "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"
        }
      }
    },
    "ListConnectionProfilesResponse": {
      "type": "object",
      "id": "ListConnectionProfilesResponse",
      "properties": {
        "connectionProfiles": {
          "items": {
            "$ref": "ConnectionProfile"
          },
          "type": "array",
          "description": "List of connection profiles."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        },
        "unreachable": {
          "description": "Locations that could not be reached.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "MysqlProfile": {
      "type": "object",
      "description": "MySQL database profile.",
      "properties": {
        "password": {
          "type": "string",
          "description": "Required. Input only. Password for the MySQL connection."
        },
        "port": {
          "description": "Port for the MySQL connection, default value is 3306.",
          "format": "int32",
          "type": "integer"
        },
        "sslConfig": {
          "description": "SSL configuration for the MySQL connection.",
          "$ref": "MysqlSslConfig"
        },
        "hostname": {
          "description": "Required. Hostname for the MySQL connection.",
          "type": "string"
        },
        "username": {
          "description": "Required. Username for the MySQL connection.",
          "type": "string"
        }
      },
      "id": "MysqlProfile"
    },
    "OracleRdbms": {
      "id": "OracleRdbms",
      "description": "Oracle database structure.",
      "properties": {
        "oracleSchemas": {
          "items": {
            "$ref": "OracleSchema"
          },
          "description": "Oracle schemas/databases in the database server.",
          "type": "array"
        }
      },
      "type": "object"
    },
    "StaticServiceIpConnectivity": {
      "id": "StaticServiceIpConnectivity",
      "type": "object",
      "description": "Static IP address connectivity.",
      "properties": {}
    },
    "Error": {
      "type": "object",
      "properties": {
        "errorUuid": {
          "description": "A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.",
          "type": "string"
        },
        "message": {
          "type": "string",
          "description": "A message containing more information about the error that occurred."
        },
        "errorTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The time when the error occurred."
        },
        "details": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Additional information about the error."
        },
        "reason": {
          "description": "A title that explains the reason for the error.",
          "type": "string"
        }
      },
      "id": "Error",
      "description": "Represent a user-facing Error."
    },
    "ListStreamObjectsResponse": {
      "type": "object",
      "id": "ListStreamObjectsResponse",
      "properties": {
        "streamObjects": {
          "type": "array",
          "description": "List of stream objects.",
          "items": {
            "$ref": "StreamObject"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token, which can be sent as `page_token` to retrieve the next page."
        }
      },
      "description": "Response containing the objects for a stream."
    },
    "OracleColumn": {
      "properties": {
        "dataType": {
          "type": "string",
          "description": "The Oracle data type."
        },
        "nullable": {
          "description": "Whether or not the column can accept a null value.",
          "type": "boolean"
        },
        "primaryKey": {
          "type": "boolean",
          "description": "Whether or not the column represents a primary key."
        },
        "ordinalPosition": {
          "format": "int32",
          "description": "The ordinal position of the column in the table.",
          "type": "integer"
        },
        "length": {
          "description": "Column length.",
          "format": "int32",
          "type": "integer"
        },
        "precision": {
          "type": "integer",
          "description": "Column precision.",
          "format": "int32"
        },
        "encoding": {
          "description": "Column encoding.",
          "type": "string"
        },
        "columnName": {
          "type": "string",
          "description": "Column name."
        },
        "scale": {
          "description": "Column scale.",
          "type": "integer",
          "format": "int32"
        }
      },
      "description": "Oracle Column.",
      "type": "object",
      "id": "OracleColumn"
    },
    "ValidationMessage": {
      "type": "object",
      "description": "Represent user-facing validation result message.",
      "properties": {
        "level": {
          "type": "string",
          "description": "Message severity level (warning or error).",
          "enumDescriptions": [
            "Unspecified level.",
            "Potentially cause issues with the Stream.",
            "Definitely cause issues with the Stream."
          ],
          "enum": [
            "LEVEL_UNSPECIFIED",
            "WARNING",
            "ERROR"
          ]
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "description": "Additional metadata related to the result."
        },
        "message": {
          "description": "The result of the validation.",
          "type": "string"
        },
        "code": {
          "description": "A custom code identifying this specific message.",
          "type": "string"
        }
      },
      "id": "ValidationMessage"
    },
    "FetchErrorsRequest": {
      "id": "FetchErrorsRequest",
      "properties": {},
      "description": "Request message for 'FetchErrors' request.",
      "type": "object"
    },
    "FetchErrorsResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "Error"
          },
          "description": "The list of errors on the Stream."
        }
      },
      "type": "object",
      "id": "FetchErrorsResponse",
      "description": "Response message for a 'FetchErrors' response."
    },
    "NoConnectivitySettings": {
      "properties": {},
      "type": "object",
      "description": "No connectivity settings.",
      "id": "NoConnectivitySettings"
    },
    "BackfillNoneStrategy": {
      "id": "BackfillNoneStrategy",
      "properties": {},
      "description": "Backfill strategy to disable automatic backfill for the Stream's objects.",
      "type": "object"
    },
    "StartBackfillJobResponse": {
      "id": "StartBackfillJobResponse",
      "type": "object",
      "properties": {
        "object": {
          "description": "The stream object resource a backfill job was started for.",
          "$ref": "StreamObject"
        }
      },
      "description": "Response for manually initiating a backfill job for a specific stream object."
    },
    "MysqlSslConfig": {
      "id": "MysqlSslConfig",
      "type": "object",
      "description": "MySQL SSL configuration information.",
      "properties": {
        "caCertificate": {
          "type": "string",
          "description": "Input only. PEM-encoded certificate of the CA that signed the source database server's certificate."
        },
        "clientCertificate": {
          "type": "string",
          "description": "Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory."
        },
        "clientCertificateSet": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates whether the client_certificate field is set."
        },
        "clientKeySet": {
          "readOnly": true,
          "type": "boolean",
          "description": "Output only. Indicates whether the client_key field is set."
        },
        "caCertificateSet": {
          "type": "boolean",
          "description": "Output only. Indicates whether the ca_certificate field is set.",
          "readOnly": true
        },
        "clientKey": {
          "type": "string",
          "description": "Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory."
        }
      }
    },
    "DiscoverConnectionProfileRequest": {
      "description": "Request message for 'discover' ConnectionProfile request.",
      "type": "object",
      "properties": {
        "oracleRdbms": {
          "$ref": "OracleRdbms",
          "description": "Oracle RDBMS to enrich with child data objects and metadata."
        },
        "connectionProfile": {
          "description": "An ad-hoc ConnectionProfile configuration.",
          "$ref": "ConnectionProfile"
        },
        "recursionDepth": {
          "type": "integer",
          "format": "int32",
          "description": "The number of hierarchy levels below the current level to be retrieved."
        },
        "recursive": {
          "description": "Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).",
          "type": "boolean"
        },
        "mysqlRdbms": {
          "$ref": "MysqlRdbms",
          "description": "MySQL RDBMS to enrich with child data objects and metadata."
        },
        "connectionProfileName": {
          "description": "A reference to an existing ConnectionProfile.",
          "type": "string"
        }
      },
      "id": "DiscoverConnectionProfileRequest"
    },
    "DebugInfo": {
      "type": "object",
      "description": "Describes additional debugging info.",
      "id": "DebugInfo",
      "properties": {
        "detail": {
          "type": "string",
          "description": "Additional debugging information provided by the server."
        },
        "stackEntries": {
          "description": "The stack trace entries indicating where the error occurred.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      }
    },
    "ValidationResult": {
      "id": "ValidationResult",
      "description": "Contains the current validation results.",
      "properties": {
        "validations": {
          "type": "array",
          "items": {
            "$ref": "Validation"
          },
          "description": "A list of validations (includes both executed as well as not executed validations)."
        }
      },
      "type": "object"
    },
    "Link": {
      "properties": {
        "url": {
          "type": "string",
          "description": "The URL of the link."
        },
        "description": {
          "type": "string",
          "description": "Describes what the link offers."
        }
      },
      "id": "Link",
      "type": "object",
      "description": "Describes a URL link."
    },
    "BackfillAllStrategy": {
      "properties": {
        "oracleExcludedObjects": {
          "description": "Oracle data source objects to avoid backfilling.",
          "$ref": "OracleRdbms"
        },
        "mysqlExcludedObjects": {
          "description": "MySQL data source objects to avoid backfilling.",
          "$ref": "MysqlRdbms"
        }
      },
      "id": "BackfillAllStrategy",
      "description": "Backfill strategy to automatically backfill the Stream's objects. Specific objects can be excluded.",
      "type": "object"
    },
    "RetryInfo": {
      "type": "object",
      "properties": {
        "retryDelay": {
          "description": "Clients should wait at least this long between retrying the same request.",
          "type": "string",
          "format": "google-duration"
        }
      },
      "description": "Describes when the clients can retry a failed request. Clients could ignore the recommendation here or retry when this information is missing from error responses. It's always recommended that clients should use exponential backoff when retrying. Clients should wait until `retry_delay` amount of time has passed since receiving the error response before retrying. If retrying requests also fail, clients should use an exponential backoff scheme to gradually increase the delay between retries based on `retry_delay`, until either a maximum number of retries have been reached or a maximum retry delay cap has been reached.",
      "id": "RetryInfo"
    },
    "FieldViolation": {
      "type": "object",
      "description": "A message type used to describe a single bad request field.",
      "properties": {
        "description": {
          "description": "A description of why the request element is bad.",
          "type": "string"
        },
        "field": {
          "description": "A path that leads to a field in the request body. The value will be a sequence of dot-separated identifiers that identify a protocol buffer field. Consider the following: message CreateContactRequest { message EmailAddress { enum Type { TYPE_UNSPECIFIED = 0; HOME = 1; WORK = 2; } optional string email = 1; repeated EmailType type = 2; } string full_name = 1; repeated EmailAddress email_addresses = 2; } In this example, in proto `field` could take one of the following values: * `full_name` for a violation in the `full_name` value * `email_addresses[0].email` for a violation in the `email` field of the first `email_addresses` message * `email_addresses[2].type[1]` for a violation in the second `type` value in the third `email_addresses` message. In JSON, the same values are represented as: * `fullName` for a violation in the `fullName` value * `emailAddresses[0].email` for a violation in the `email` field of the first `emailAddresses` message * `emailAddresses[2].type[1]` for a violation in the second `type` value in the third `emailAddresses` message.",
          "type": "string"
        },
        "reason": {
          "type": "string",
          "description": "The reason for the field-level error. This is a constant value that identifies the proximate cause of the field-level error. It should uniquely identify the type of the FieldViolation within the scope of the google.rpc.ErrorInfo.domain. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE."
        },
        "localizedMessage": {
          "$ref": "LocalizedMessage",
          "description": "Provides a localized error message for field-level errors that is safe to return to the API consumer."
        }
      },
      "id": "FieldViolation"
    },
    "Status": {
      "id": "Status",
      "properties": {
        "message": {
          "type": "string",
          "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."
        },
        "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": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          }
        },
        "code": {
          "type": "integer",
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32"
        }
      },
      "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"
    },
    "LocalizedMessage": {
      "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.",
      "id": "LocalizedMessage",
      "type": "object",
      "properties": {
        "message": {
          "description": "The localized error message in the above locale.",
          "type": "string"
        },
        "locale": {
          "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"",
          "type": "string"
        }
      }
    },
    "QuotaFailure": {
      "type": "object",
      "id": "QuotaFailure",
      "properties": {
        "violations": {
          "description": "Describes all quota violations.",
          "items": {
            "$ref": "QuotaFailureViolation"
          },
          "type": "array"
        }
      },
      "description": "Describes how a quota check failed. For example if a daily limit was exceeded for the calling project, a service could respond with a QuotaFailure detail containing the project id and the description of the quota limit that was exceeded. If the calling project hasn't enabled the service in the developer console, then a service could respond with the project id and set `service_disabled` to true. Also see RetryInfo and Help types for other details about handling a quota failure."
    },
    "OracleSourceConfig": {
      "type": "object",
      "description": "Oracle data source configuration",
      "properties": {
        "dropLargeObjects": {
          "$ref": "DropLargeObjects",
          "description": "Drop large object values."
        },
        "rejectlist": {
          "$ref": "OracleRdbms",
          "description": "Oracle objects to exclude from the stream."
        },
        "allowlist": {
          "description": "Oracle objects to include in the stream.",
          "$ref": "OracleRdbms"
        }
      },
      "id": "OracleSourceConfig"
    },
    "StreamObject": {
      "id": "StreamObject",
      "type": "object",
      "description": "A specific stream object (e.g a specific DB table).",
      "properties": {
        "updateTime": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The last update time of the object."
        },
        "backfillJob": {
          "description": "The latest backfill job that was initiated for the stream object.",
          "$ref": "BackfillJob"
        },
        "errors": {
          "description": "Output only. Active errors on the object.",
          "type": "array",
          "items": {
            "$ref": "Error"
          },
          "readOnly": true
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The object's name."
        },
        "sourceObject": {
          "$ref": "SourceObjectIdentifier",
          "description": "The object identifier in the data source."
        },
        "displayName": {
          "type": "string",
          "description": "Required. Display name."
        },
        "createTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. The creation time of the object."
        }
      }
    },
    "ListStreamsResponse": {
      "properties": {
        "unreachable": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Locations that could not be reached."
        },
        "nextPageToken": {
          "type": "string",
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        },
        "streams": {
          "type": "array",
          "items": {
            "$ref": "Stream"
          },
          "description": "List of streams"
        }
      },
      "type": "object",
      "id": "ListStreamsResponse"
    },
    "BadRequest": {
      "id": "BadRequest",
      "type": "object",
      "description": "Describes violations in a client request. This error type focuses on the syntactic aspects of the request.",
      "properties": {
        "fieldViolations": {
          "type": "array",
          "items": {
            "$ref": "FieldViolation"
          },
          "description": "Describes all violations in a client request."
        }
      }
    },
    "OracleProfile": {
      "type": "object",
      "properties": {
        "username": {
          "description": "Required. Username for the Oracle connection.",
          "type": "string"
        },
        "databaseService": {
          "type": "string",
          "description": "Required. Database for the Oracle connection."
        },
        "port": {
          "type": "integer",
          "description": "Port for the Oracle connection, default value is 1521.",
          "format": "int32"
        },
        "hostname": {
          "type": "string",
          "description": "Required. Hostname for the Oracle connection."
        },
        "connectionAttributes": {
          "type": "object",
          "description": "Connection string attributes",
          "additionalProperties": {
            "type": "string"
          }
        },
        "password": {
          "type": "string",
          "description": "Required. Password for the Oracle connection."
        }
      },
      "id": "OracleProfile",
      "description": "Oracle database profile."
    },
    "VpcPeeringConfig": {
      "description": "The VPC Peering configuration is used to create VPC peering between Datastream and the consumer's VPC.",
      "type": "object",
      "properties": {
        "subnet": {
          "type": "string",
          "description": "Required. A free subnet for peering. (CIDR of /29)"
        },
        "vpcName": {
          "type": "string",
          "description": "Required. fully qualified name of the VPC Datastream will peer to."
        }
      },
      "id": "VpcPeeringConfig"
    },
    "OperationMetadata": {
      "properties": {
        "createTime": {
          "readOnly": true,
          "description": "Output only. The time the operation was created.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time the operation finished running.",
          "type": "string"
        },
        "verb": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Name of the verb executed by the operation."
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "readOnly": true,
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "type": "boolean"
        },
        "statusMessage": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Human-readable status of the operation, if any."
        },
        "validationResult": {
          "readOnly": true,
          "description": "Output only. Results of executed validations if there are any.",
          "$ref": "ValidationResult"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "Represents the metadata of the long-running operation.",
      "id": "OperationMetadata",
      "type": "object"
    },
    "CancelOperationRequest": {
      "id": "CancelOperationRequest",
      "description": "The request message for Operations.CancelOperation.",
      "type": "object",
      "properties": {}
    },
    "PrivateConnectivity": {
      "description": "Private Connectivity",
      "id": "PrivateConnectivity",
      "type": "object",
      "properties": {
        "privateConnectionName": {
          "type": "string"
        }
      }
    },
    "MysqlColumn": {
      "properties": {
        "ordinalPosition": {
          "description": "The ordinal position of the column in the table.",
          "type": "integer",
          "format": "int32"
        },
        "dataType": {
          "type": "string",
          "description": "The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html"
        },
        "nullable": {
          "type": "boolean",
          "description": "Whether or not the column can accept a null value."
        },
        "columnName": {
          "type": "string",
          "description": "Column name."
        },
        "length": {
          "description": "Column length.",
          "format": "int32",
          "type": "integer"
        },
        "collation": {
          "description": "Column collation.",
          "type": "string"
        },
        "primaryKey": {
          "description": "Whether or not the column represents a primary key.",
          "type": "boolean"
        }
      },
      "description": "MySQL Column.",
      "type": "object",
      "id": "MysqlColumn"
    },
    "ConnectionProfile": {
      "type": "object",
      "properties": {
        "updateTime": {
          "type": "string",
          "description": "Output only. The update time of the resource.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "privateConnectivity": {
          "$ref": "PrivateConnectivity",
          "description": "Private connectivity."
        },
        "displayName": {
          "type": "string",
          "description": "Required. Display name."
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The resource's name."
        },
        "gcsProfile": {
          "description": "Cloud Storage ConnectionProfile configuration.",
          "$ref": "GcsProfile"
        },
        "mysqlProfile": {
          "description": "MySQL ConnectionProfile configuration.",
          "$ref": "MysqlProfile"
        },
        "forwardSshConnectivity": {
          "description": "Forward SSH tunnel connectivity.",
          "$ref": "ForwardSshTunnelConnectivity"
        },
        "staticServiceIpConnectivity": {
          "description": "Static Service IP connectivity.",
          "$ref": "StaticServiceIpConnectivity"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels."
        },
        "createTime": {
          "description": "Output only. The create time of the resource.",
          "format": "google-datetime",
          "readOnly": true,
          "type": "string"
        },
        "noConnectivity": {
          "description": "No connectivity option chosen.",
          "$ref": "NoConnectivitySettings"
        },
        "oracleProfile": {
          "description": "Oracle ConnectionProfile configuration.",
          "$ref": "OracleProfile"
        }
      },
      "id": "ConnectionProfile"
    },
    "OracleObjectIdentifier": {
      "description": "Oracle data source object identifier.",
      "type": "object",
      "properties": {
        "schema": {
          "type": "string",
          "description": "Required. The schema name."
        },
        "table": {
          "description": "Required. The table name.",
          "type": "string"
        }
      },
      "id": "OracleObjectIdentifier"
    },
    "SourceObjectIdentifier": {
      "type": "object",
      "properties": {
        "oracleIdentifier": {
          "$ref": "OracleObjectIdentifier",
          "description": "Oracle data source object identifier."
        },
        "mysqlIdentifier": {
          "description": "Mysql data source object identifier.",
          "$ref": "MysqlObjectIdentifier"
        }
      },
      "description": "Represents an identifier of an object in the data source.",
      "id": "SourceObjectIdentifier"
    },
    "RequestInfo": {
      "description": "Contains metadata about the request that clients can attach when filing a bug or providing other forms of feedback.",
      "id": "RequestInfo",
      "properties": {
        "requestId": {
          "type": "string",
          "description": "An opaque string that should only be interpreted by the service generating it. For example, it can be used to identify requests in the service's logs."
        },
        "servingData": {
          "description": "Any data that was used to serve this request. For example, an encrypted stack trace that can be sent back to the service provider for debugging.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "BackfillJob": {
      "properties": {
        "lastStartTime": {
          "readOnly": true,
          "type": "string",
          "format": "google-datetime",
          "description": "Output only. Backfill job's start time."
        },
        "state": {
          "enum": [
            "STATE_UNSPECIFIED",
            "NOT_STARTED",
            "PENDING",
            "ACTIVE",
            "STOPPED",
            "FAILED",
            "COMPLETED",
            "UNSUPPORTED"
          ],
          "description": "Backfill job state.",
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Backfill job was never started for the stream object (stream has backfill strategy defined as manual or object was explicitly excluded from automatic backfill).",
            "Backfill job will start pending available resources.",
            "Backfill job is running.",
            "Backfill job stopped (next job run will start from beginning).",
            "Backfill job failed (due to an error).",
            "Backfill completed successfully.",
            "Backfill job failed since the table structure is currently unsupported for backfill."
          ]
        },
        "trigger": {
          "description": "Backfill job's triggering reason.",
          "enumDescriptions": [
            "Default value.",
            "Object backfill job was triggered automatically according to the stream's backfill strategy.",
            "Object backfill job was triggered manually using the dedicated API."
          ],
          "type": "string",
          "enum": [
            "TRIGGER_UNSPECIFIED",
            "AUTOMATIC",
            "MANUAL"
          ]
        },
        "errors": {
          "readOnly": true,
          "items": {
            "$ref": "Error"
          },
          "type": "array",
          "description": "Output only. Errors which caused the backfill job to fail."
        },
        "lastEndTime": {
          "format": "google-datetime",
          "description": "Output only. Backfill job's end time.",
          "readOnly": true,
          "type": "string"
        }
      },
      "id": "BackfillJob",
      "type": "object",
      "description": "Represents a backfill job on a specific stream object."
    },
    "ListRoutesResponse": {
      "properties": {
        "unreachable": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Locations that could not be reached."
        },
        "routes": {
          "items": {
            "$ref": "Route"
          },
          "description": "List of Routes.",
          "type": "array"
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      },
      "id": "ListRoutesResponse",
      "description": "route list response",
      "type": "object"
    },
    "OracleSchema": {
      "type": "object",
      "properties": {
        "schemaName": {
          "type": "string",
          "description": "Schema name."
        },
        "oracleTables": {
          "type": "array",
          "description": "Tables in the schema.",
          "items": {
            "$ref": "OracleTable"
          }
        }
      },
      "description": "Oracle schema.",
      "id": "OracleSchema"
    },
    "ForwardSshTunnelConnectivity": {
      "type": "object",
      "id": "ForwardSshTunnelConnectivity",
      "properties": {
        "hostname": {
          "description": "Required. Hostname for the SSH tunnel.",
          "type": "string"
        },
        "username": {
          "description": "Required. Username for the SSH tunnel.",
          "type": "string"
        },
        "port": {
          "type": "integer",
          "description": "Port for the SSH tunnel, default value is 22.",
          "format": "int32"
        },
        "password": {
          "description": "Input only. SSH password.",
          "type": "string"
        },
        "privateKey": {
          "type": "string",
          "description": "Input only. SSH private key."
        }
      },
      "description": "Forward SSH Tunnel connectivity."
    },
    "PrivateConnection": {
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The create time of the resource.",
          "format": "google-datetime",
          "type": "string",
          "readOnly": true
        },
        "error": {
          "description": "Output only. In case of error, the details of the error in a user-friendly format.",
          "readOnly": true,
          "$ref": "Error"
        },
        "name": {
          "type": "string",
          "description": "Output only. The resource's name.",
          "readOnly": true
        },
        "state": {
          "type": "string",
          "description": "Output only. The state of the Private Connection.",
          "enumDescriptions": [
            "",
            "The private connection is in creation state - creating resources.",
            "The private connection has been created with all of its resources.",
            "The private connection creation has failed.",
            "The private connection is being deleted.",
            "Delete request has failed, resource is in invalid state."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATING",
            "CREATED",
            "FAILED",
            "DELETING",
            "FAILED_TO_DELETE"
          ],
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "description": "Required. Display name."
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels.",
          "type": "object"
        },
        "vpcPeeringConfig": {
          "description": "VPC Peering Config",
          "$ref": "VpcPeeringConfig"
        },
        "updateTime": {
          "description": "Output only. The update time of the resource.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        }
      },
      "id": "PrivateConnection",
      "description": "The PrivateConnection resource is used to establish private connectivity between Datastream and a customer's network."
    },
    "StopBackfillJobResponse": {
      "description": "Response for manually stop a backfill job for a specific stream object.",
      "type": "object",
      "properties": {
        "object": {
          "description": "The stream object resource the backfill job was stopped for.",
          "$ref": "StreamObject"
        }
      },
      "id": "StopBackfillJobResponse"
    },
    "MysqlTable": {
      "properties": {
        "tableName": {
          "description": "Table name.",
          "type": "string"
        },
        "mysqlColumns": {
          "description": "MySQL columns in the database. When unspecified as part of include/exclude lists, includes/excludes everything.",
          "type": "array",
          "items": {
            "$ref": "MysqlColumn"
          }
        }
      },
      "id": "MysqlTable",
      "type": "object",
      "description": "MySQL table."
    },
    "FetchStaticIpsResponse": {
      "id": "FetchStaticIpsResponse",
      "type": "object",
      "description": "Response message for a 'FetchStaticIps' response.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        },
        "staticIps": {
          "items": {
            "type": "string"
          },
          "description": "list of static ips by account",
          "type": "array"
        }
      }
    },
    "QuotaFailureViolation": {
      "id": "QuotaFailureViolation",
      "type": "object",
      "properties": {
        "apiService": {
          "description": "The API Service from which the `QuotaFailure.Violation` originates. In some cases, Quota issues originate from an API Service other than the one that was called. In other words, a dependency of the called API Service could be the cause of the `QuotaFailure`, and this field would have the dependency API service name. For example, if the called API is Kubernetes Engine API (container.googleapis.com), and a quota violation occurs in the Kubernetes Engine API itself, this field would be \"container.googleapis.com\". On the other hand, if the quota violation occurs when the Kubernetes Engine API creates VMs in the Compute Engine API (compute.googleapis.com), this field would be \"compute.googleapis.com\".",
          "type": "string"
        },
        "quotaValue": {
          "type": "string",
          "format": "int64",
          "description": "The enforced quota value at the time of the `QuotaFailure`. For example, if the enforced quota value at the time of the `QuotaFailure` on the number of CPUs is \"10\", then the value of this field would reflect this quantity."
        },
        "futureQuotaValue": {
          "type": "string",
          "format": "int64",
          "description": "The new quota value being rolled out at the time of the violation. At the completion of the rollout, this value will be enforced in place of quota_value. If no rollout is in progress at the time of the violation, this field is not set. For example, if at the time of the violation a rollout is in progress changing the number of CPUs quota from 10 to 20, 20 would be the value of this field."
        },
        "quotaMetric": {
          "type": "string",
          "description": "The metric of the violated quota. A quota metric is a named counter to measure usage, such as API requests or CPUs. When an activity occurs in a service, such as Virtual Machine allocation, one or more quota metrics may be affected. For example, \"compute.googleapis.com/cpus_per_vm_family\", \"storage.googleapis.com/internet_egress_bandwidth\"."
        },
        "subject": {
          "description": "The subject on which the quota check failed. For example, \"clientip:\" or \"project:\".",
          "type": "string"
        },
        "quotaDimensions": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The dimensions of the violated quota. Every non-global quota is enforced on a set of dimensions. While quota metric defines what to count, the dimensions specify for what aspects the counter should be increased. For example, the quota \"CPUs per region per VM family\" enforces a limit on the metric \"compute.googleapis.com/cpus_per_vm_family\" on dimensions \"region\" and \"vm_family\". And if the violation occurred in region \"us-central1\" and for VM family \"n1\", the quota_dimensions would be, { \"region\": \"us-central1\", \"vm_family\": \"n1\", } When a quota is enforced globally, the quota_dimensions would always be empty."
        },
        "quotaId": {
          "description": "The id of the violated quota. Also know as \"limit name\", this is the unique identifier of a quota in the context of an API service. For example, \"CPUS-PER-VM-FAMILY-per-project-region\".",
          "type": "string"
        },
        "description": {
          "description": "A description of how the quota check failed. Clients can use this description to find more about the quota configuration in the service's public documentation, or find the relevant quota limit to adjust through developer console. For example: \"Service disabled\" or \"Daily Limit for read operations exceeded\".",
          "type": "string"
        }
      },
      "description": "A message type used to describe a single quota violation. For example, a daily quota or a custom quota that was exceeded."
    },
    "MysqlSourceConfig": {
      "id": "MysqlSourceConfig",
      "type": "object",
      "description": "MySQL source configuration",
      "properties": {
        "allowlist": {
          "$ref": "MysqlRdbms",
          "description": "MySQL objects to retrieve from the source."
        },
        "rejectlist": {
          "description": "MySQL objects to exclude from the stream.",
          "$ref": "MysqlRdbms"
        }
      }
    },
    "Stream": {
      "type": "object",
      "id": "Stream",
      "properties": {
        "createTime": {
          "format": "google-datetime",
          "description": "Output only. The creation time of the stream.",
          "type": "string",
          "readOnly": true
        },
        "sourceConfig": {
          "$ref": "SourceConfig",
          "description": "Required. Source connection profile configuration."
        },
        "backfillAll": {
          "description": "Automatically backfill objects included in the stream source configuration. Specific objects can be excluded.",
          "$ref": "BackfillAllStrategy"
        },
        "destinationConfig": {
          "$ref": "DestinationConfig",
          "description": "Required. Destination connection profile configuration."
        },
        "errors": {
          "items": {
            "$ref": "Error"
          },
          "type": "array",
          "description": "Output only. Errors on the Stream.",
          "readOnly": true
        },
        "state": {
          "description": "The state of the stream.",
          "enumDescriptions": [
            "Unspecified stream state.",
            "The stream has been created.",
            "The stream is running.",
            "The stream is paused.",
            "The stream is in maintenance mode. Updates are rejected on the resource in this state.",
            "The stream is experiencing an error that is preventing data from being streamed.",
            "The stream has experienced a terminal failure.",
            "The stream is starting, but not yet running.",
            "The Stream is no longer reading new events, but still writing events in the buffer."
          ],
          "type": "string",
          "enum": [
            "STATE_UNSPECIFIED",
            "CREATED",
            "RUNNING",
            "PAUSED",
            "MAINTENANCE",
            "FAILED",
            "FAILED_PERMANENTLY",
            "STARTING",
            "DRAINING"
          ]
        },
        "name": {
          "type": "string",
          "description": "Output only. The stream's name.",
          "readOnly": true
        },
        "displayName": {
          "description": "Required. Display name.",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Labels.",
          "type": "object"
        },
        "updateTime": {
          "description": "Output only. The last update time of the stream.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "backfillNone": {
          "description": "Do not automatically backfill any objects.",
          "$ref": "BackfillNoneStrategy"
        },
        "customerManagedEncryptionKey": {
          "type": "string",
          "description": "Immutable. A reference to a KMS encryption key. If provided, it will be used to encrypt the data. If left blank, data will be encrypted using an internal Stream-specific encryption key provisioned through KMS."
        }
      }
    },
    "GcsDestinationConfig": {
      "id": "GcsDestinationConfig",
      "description": "Google Cloud Storage destination configuration",
      "properties": {
        "fileRotationMb": {
          "description": "The maximum file size to be saved in the bucket.",
          "type": "integer",
          "format": "int32"
        },
        "gcsFileFormat": {
          "deprecated": true,
          "enumDescriptions": [
            "Unspecified Cloud Storage file format.",
            "Avro file format"
          ],
          "description": "File format that data should be written in. Deprecated field (b/169501737) - use file_format instead.",
          "enum": [
            "GCS_FILE_FORMAT_UNSPECIFIED",
            "AVRO"
          ],
          "type": "string"
        },
        "fileRotationInterval": {
          "description": "The maximum duration for which new events are added before a file is closed and a new file is created.",
          "type": "string",
          "format": "google-duration"
        },
        "avroFileFormat": {
          "$ref": "AvroFileFormat",
          "description": "AVRO file format configuration."
        },
        "jsonFileFormat": {
          "description": "JSON file format configuration.",
          "$ref": "JsonFileFormat"
        },
        "path": {
          "type": "string",
          "description": "Path inside the Cloud Storage bucket to write data to."
        }
      },
      "type": "object"
    },
    "Route": {
      "type": "object",
      "properties": {
        "labels": {
          "description": "Labels.",
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "createTime": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The create time of the resource.",
          "format": "google-datetime"
        },
        "destinationPort": {
          "format": "int32",
          "description": "Destination port for connection",
          "type": "integer"
        },
        "destinationAddress": {
          "description": "Required. Destination address for connection",
          "type": "string"
        },
        "name": {
          "description": "Output only. The resource's name.",
          "type": "string",
          "readOnly": true
        },
        "displayName": {
          "description": "Required. Display name.",
          "type": "string"
        },
        "updateTime": {
          "format": "google-datetime",
          "description": "Output only. The update time of the resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "description": "The Route resource is the child of the PrivateConnection resource. It used to define a route for a PrivateConnection setup.",
      "id": "Route"
    },
    "OracleTable": {
      "type": "object",
      "id": "OracleTable",
      "description": "Oracle table.",
      "properties": {
        "tableName": {
          "description": "Table name.",
          "type": "string"
        },
        "oracleColumns": {
          "type": "array",
          "description": "Oracle columns in the schema. When unspecified as part of inclue/exclude lists, includes/excludes everything.",
          "items": {
            "$ref": "OracleColumn"
          }
        }
      }
    },
    "Help": {
      "id": "Help",
      "type": "object",
      "properties": {
        "links": {
          "description": "URL(s) pointing to additional information on handling the current error.",
          "items": {
            "$ref": "Link"
          },
          "type": "array"
        }
      },
      "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit."
    },
    "DestinationConfig": {
      "id": "DestinationConfig",
      "type": "object",
      "properties": {
        "destinationConnectionProfileName": {
          "type": "string",
          "description": "Required. Destination connection profile identifier."
        },
        "gcsDestinationConfig": {
          "description": "GCS destination configuration.",
          "$ref": "GcsDestinationConfig"
        }
      },
      "description": "The configuration of the stream destination."
    },
    "MysqlDatabase": {
      "id": "MysqlDatabase",
      "description": "MySQL database.",
      "properties": {
        "databaseName": {
          "description": "Database name.",
          "type": "string"
        },
        "mysqlTables": {
          "items": {
            "$ref": "MysqlTable"
          },
          "type": "array",
          "description": "Tables in the database."
        }
      },
      "type": "object"
    },
    "DropLargeObjects": {
      "description": "Configuration to drop large object values.",
      "properties": {},
      "type": "object",
      "id": "DropLargeObjects"
    },
    "JsonFileFormat": {
      "id": "JsonFileFormat",
      "properties": {
        "compression": {
          "description": "Compression of the loaded JSON file.",
          "type": "string",
          "enum": [
            "JSON_COMPRESSION_UNSPECIFIED",
            "NO_COMPRESSION",
            "GZIP"
          ],
          "enumDescriptions": [
            "Unspecified json file compression.",
            "Do not compress JSON file.",
            "Gzip compression."
          ]
        },
        "schemaFileFormat": {
          "description": "The schema file format along JSON data files.",
          "enum": [
            "SCHEMA_FILE_FORMAT_UNSPECIFIED",
            "NO_SCHEMA_FILE",
            "AVRO_SCHEMA_FILE"
          ],
          "type": "string",
          "enumDescriptions": [
            "Unspecified schema file format.",
            "Do not attach schema file.",
            "Avro schema format."
          ]
        }
      },
      "type": "object",
      "description": "JSON file format configuration."
    },
    "DiscoverConnectionProfileResponse": {
      "properties": {
        "oracleRdbms": {
          "description": "Enriched Oracle RDBMS object.",
          "$ref": "OracleRdbms"
        },
        "mysqlRdbms": {
          "description": "Enriched MySQL RDBMS object.",
          "$ref": "MysqlRdbms"
        }
      },
      "type": "object",
      "id": "DiscoverConnectionProfileResponse"
    },
    "PreconditionFailureViolation": {
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of PreconditionFailure. We recommend using a service-specific enum type to define the supported precondition violation subjects. For example, \"TOS\" for \"Terms of Service violation\"."
        },
        "subject": {
          "description": "The subject, relative to the type, that failed. For example, \"google.com/cloud\" relative to the \"TOS\" type would indicate which terms of service is being referenced.",
          "type": "string"
        },
        "description": {
          "description": "A description of how the precondition failed. Developers can use this description to understand how to fix the failure. For example: \"Terms of service not accepted\".",
          "type": "string"
        }
      },
      "description": "A message type used to describe a single precondition failure.",
      "type": "object",
      "id": "PreconditionFailureViolation"
    },
    "ListLocationsResponse": {
      "description": "The response message for Locations.ListLocations.",
      "properties": {
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        },
        "locations": {
          "items": {
            "$ref": "Location"
          },
          "type": "array",
          "description": "A list of locations that matches the specified filter in the request."
        }
      },
      "type": "object",
      "id": "ListLocationsResponse"
    }
  }
}
