Skip to main content
Glama

Datastream MCP Server

models.py38.3 kB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-06-29T01:47:46+00:00 from __future__ import annotations from enum import Enum from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field class AvroFileFormat(BaseModel): pass class State(Enum): STATE_UNSPECIFIED = 'STATE_UNSPECIFIED' NOT_STARTED = 'NOT_STARTED' PENDING = 'PENDING' ACTIVE = 'ACTIVE' STOPPED = 'STOPPED' FAILED = 'FAILED' COMPLETED = 'COMPLETED' UNSUPPORTED = 'UNSUPPORTED' class Trigger(Enum): TRIGGER_UNSPECIFIED = 'TRIGGER_UNSPECIFIED' AUTOMATIC = 'AUTOMATIC' MANUAL = 'MANUAL' class BackfillNoneStrategy(BaseModel): pass class BigQueryProfile(BaseModel): pass class CancelOperationRequest(BaseModel): pass class DatasetTemplate(BaseModel): datasetIdPrefix: Optional[str] = Field( None, description='If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.', ) kmsKeyName: Optional[str] = Field( None, description='Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.', ) location: Optional[str] = Field( None, description='Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.', ) class DropLargeObjects(BaseModel): pass class Empty(BaseModel): pass class Error(BaseModel): details: Optional[Dict[str, str]] = Field( None, description='Additional information about the error.' ) errorTime: Optional[str] = Field( None, description='The time when the error occurred.' ) errorUuid: Optional[str] = Field( None, description='A unique identifier for this specific error, allowing it to be traced throughout the system in logs and API responses.', ) message: Optional[str] = Field( None, description='A message containing more information about the error that occurred.', ) reason: Optional[str] = Field( None, description='A title that explains the reason for the error.' ) class FetchStaticIpsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, 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: Optional[List[str]] = Field( None, description='list of static ips by account' ) class ForwardSshTunnelConnectivity(BaseModel): hostname: Optional[str] = Field( None, description='Required. Hostname for the SSH tunnel.' ) password: Optional[str] = Field(None, description='Input only. SSH password.') port: Optional[int] = Field( None, description='Port for the SSH tunnel, default value is 22.' ) privateKey: Optional[str] = Field(None, description='Input only. SSH private key.') username: Optional[str] = Field( None, description='Required. Username for the SSH tunnel.' ) class GcsProfile(BaseModel): bucket: Optional[str] = Field( None, description='Required. The Cloud Storage bucket name.' ) rootPath: Optional[str] = Field( None, description='The root path inside the Cloud Storage bucket.' ) class Compression(Enum): JSON_COMPRESSION_UNSPECIFIED = 'JSON_COMPRESSION_UNSPECIFIED' NO_COMPRESSION = 'NO_COMPRESSION' GZIP = 'GZIP' class SchemaFileFormat(Enum): SCHEMA_FILE_FORMAT_UNSPECIFIED = 'SCHEMA_FILE_FORMAT_UNSPECIFIED' NO_SCHEMA_FILE = 'NO_SCHEMA_FILE' AVRO_SCHEMA_FILE = 'AVRO_SCHEMA_FILE' class JsonFileFormat(BaseModel): compression: Optional[Compression] = Field( None, description='Compression of the loaded JSON file.' ) schemaFileFormat: Optional[SchemaFileFormat] = Field( None, description='The schema file format along JSON data files.' ) class Location(BaseModel): displayName: Optional[str] = Field( None, description='The friendly name for this location, typically a nearby city name. For example, "Tokyo".', ) labels: Optional[Dict[str, str]] = Field( None, description='Cross-service attributes for the location. For example {"cloud.googleapis.com/region": "us-east1"}', ) locationId: Optional[str] = Field( None, description='The canonical id for this location. For example: `"us-east1"`.', ) metadata: Optional[Dict[str, Any]] = Field( None, description='Service-specific metadata. For example the available capacity at the given location.', ) name: Optional[str] = Field( None, description='Resource name for the location, which may vary between implementations. For example: `"projects/example-project/locations/us-east1"`', ) class MysqlColumn(BaseModel): collation: Optional[str] = Field(None, description='Column collation.') column: Optional[str] = Field(None, description='Column name.') dataType: Optional[str] = Field( None, 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', ) length: Optional[int] = Field(None, description='Column length.') nullable: Optional[bool] = Field( None, description='Whether or not the column can accept a null value.' ) ordinalPosition: Optional[int] = Field( None, description='The ordinal position of the column in the table.' ) primaryKey: Optional[bool] = Field( None, description='Whether or not the column represents a primary key.' ) class MysqlObjectIdentifier(BaseModel): database: Optional[str] = Field(None, description='Required. The database name.') table: Optional[str] = Field(None, description='Required. The table name.') class MysqlSslConfig(BaseModel): caCertificate: Optional[str] = Field( None, description="Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.", ) caCertificateSet: Optional[bool] = Field( None, description='Output only. Indicates whether the ca_certificate field is set.', ) clientCertificate: Optional[str] = Field( None, 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: Optional[bool] = Field( None, description='Output only. Indicates whether the client_certificate field is set.', ) clientKey: Optional[str] = Field( None, 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.", ) clientKeySet: Optional[bool] = Field( None, description='Output only. Indicates whether the client_key field is set.' ) class MysqlTable(BaseModel): mysqlColumns: Optional[List[MysqlColumn]] = Field( None, description='MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.', ) table: Optional[str] = Field(None, description='Table name.') class OracleColumn(BaseModel): column: Optional[str] = Field(None, description='Column name.') dataType: Optional[str] = Field(None, description='The Oracle data type.') encoding: Optional[str] = Field(None, description='Column encoding.') length: Optional[int] = Field(None, description='Column length.') nullable: Optional[bool] = Field( None, description='Whether or not the column can accept a null value.' ) ordinalPosition: Optional[int] = Field( None, description='The ordinal position of the column in the table.' ) precision: Optional[int] = Field(None, description='Column precision.') primaryKey: Optional[bool] = Field( None, description='Whether or not the column represents a primary key.' ) scale: Optional[int] = Field(None, description='Column scale.') class OracleObjectIdentifier(BaseModel): schema_: Optional[str] = Field( None, alias='schema', description='Required. The schema name.' ) table: Optional[str] = Field(None, description='Required. The table name.') class OracleProfile(BaseModel): connectionAttributes: Optional[Dict[str, str]] = Field( None, description='Connection string attributes' ) databaseService: Optional[str] = Field( None, description='Required. Database for the Oracle connection.' ) hostname: Optional[str] = Field( None, description='Required. Hostname for the Oracle connection.' ) password: Optional[str] = Field( None, description='Required. Password for the Oracle connection.' ) port: Optional[int] = Field( None, description='Port for the Oracle connection, default value is 1521.' ) username: Optional[str] = Field( None, description='Required. Username for the Oracle connection.' ) class OracleTable(BaseModel): oracleColumns: Optional[List[OracleColumn]] = Field( None, description='Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.', ) table: Optional[str] = Field(None, description='Table name.') class PostgresqlColumn(BaseModel): column: Optional[str] = Field(None, description='Column name.') dataType: Optional[str] = Field(None, description='The PostgreSQL data type.') length: Optional[int] = Field(None, description='Column length.') nullable: Optional[bool] = Field( None, description='Whether or not the column can accept a null value.' ) ordinalPosition: Optional[int] = Field( None, description='The ordinal position of the column in the table.' ) precision: Optional[int] = Field(None, description='Column precision.') primaryKey: Optional[bool] = Field( None, description='Whether or not the column represents a primary key.' ) scale: Optional[int] = Field(None, description='Column scale.') class PostgresqlObjectIdentifier(BaseModel): schema_: Optional[str] = Field( None, alias='schema', description='Required. The schema name.' ) table: Optional[str] = Field(None, description='Required. The table name.') class PostgresqlProfile(BaseModel): database: Optional[str] = Field( None, description='Required. Database for the PostgreSQL connection.' ) hostname: Optional[str] = Field( None, description='Required. Hostname for the PostgreSQL connection.' ) password: Optional[str] = Field( None, description='Required. Password for the PostgreSQL connection.' ) port: Optional[int] = Field( None, description='Port for the PostgreSQL connection, default value is 5432.' ) username: Optional[str] = Field( None, description='Required. Username for the PostgreSQL connection.' ) class PostgresqlTable(BaseModel): postgresqlColumns: Optional[List[PostgresqlColumn]] = Field( None, description='PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.', ) table: Optional[str] = Field(None, description='Table name.') class State1(Enum): STATE_UNSPECIFIED = 'STATE_UNSPECIFIED' CREATING = 'CREATING' CREATED = 'CREATED' FAILED = 'FAILED' DELETING = 'DELETING' FAILED_TO_DELETE = 'FAILED_TO_DELETE' class PrivateConnectivity(BaseModel): privateConnection: Optional[str] = Field( None, description='Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`', ) class Route(BaseModel): createTime: Optional[str] = Field( None, description='Output only. The create time of the resource.' ) destinationAddress: Optional[str] = Field( None, description='Required. Destination address for connection' ) destinationPort: Optional[int] = Field( None, description='Destination port for connection' ) displayName: Optional[str] = Field(None, description='Required. Display name.') labels: Optional[Dict[str, str]] = Field(None, description='Labels.') name: Optional[str] = Field(None, description="Output only. The resource's name.") updateTime: Optional[str] = Field( None, description='Output only. The update time of the resource.' ) class SingleTargetDataset(BaseModel): datasetId: Optional[str] = Field( None, description='The dataset ID of the target dataset.' ) class SourceHierarchyDatasets(BaseModel): datasetTemplate: Optional[DatasetTemplate] = Field( None, description='The dataset template to use for dynamic dataset creation.' ) class SourceObjectIdentifier(BaseModel): mysqlIdentifier: Optional[MysqlObjectIdentifier] = Field( None, description='Mysql data source object identifier.' ) oracleIdentifier: Optional[OracleObjectIdentifier] = Field( None, description='Oracle data source object identifier.' ) postgresqlIdentifier: Optional[PostgresqlObjectIdentifier] = Field( None, description='PostgreSQL data source object identifier.' ) class StartBackfillJobRequest(BaseModel): pass class StaticServiceIpConnectivity(BaseModel): pass class Status(BaseModel): code: Optional[int] = Field( None, description='The status code, which should be an enum value of google.rpc.Code.', ) details: Optional[List[Dict[str, Any]]] = Field( None, description='A list of messages that carry the error details. There is a common set of message types for APIs to use.', ) message: Optional[str] = Field( None, 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.', ) class StopBackfillJobRequest(BaseModel): pass class State2(Enum): STATE_UNSPECIFIED = 'STATE_UNSPECIFIED' NOT_STARTED = 'NOT_STARTED' RUNNING = 'RUNNING' PAUSED = 'PAUSED' MAINTENANCE = 'MAINTENANCE' FAILED = 'FAILED' FAILED_PERMANENTLY = 'FAILED_PERMANENTLY' STARTING = 'STARTING' DRAINING = 'DRAINING' class StreamLargeObjects(BaseModel): pass class State3(Enum): STATE_UNSPECIFIED = 'STATE_UNSPECIFIED' NOT_EXECUTED = 'NOT_EXECUTED' FAILED = 'FAILED' PASSED = 'PASSED' class Level(Enum): LEVEL_UNSPECIFIED = 'LEVEL_UNSPECIFIED' WARNING = 'WARNING' ERROR = 'ERROR' class ValidationMessage(BaseModel): code: Optional[str] = Field( None, description='A custom code identifying this specific message.' ) level: Optional[Level] = Field( None, description='Message severity level (warning or error).' ) message: Optional[str] = Field(None, description='The result of the validation.') metadata: Optional[Dict[str, str]] = Field( None, description='Additional metadata related to the result.' ) class VpcPeeringConfig(BaseModel): subnet: Optional[str] = Field( None, description='Required. A free subnet for peering. (CIDR of /29)' ) vpc: Optional[str] = Field( None, description='Required. Fully qualified name of the VPC that Datastream will peer to. Format: `projects/{project}/global/{networks}/{name}`', ) class FieldXgafv(Enum): field_1 = '1' field_2 = '2' class Alt(Enum): json = 'json' media = 'media' proto = 'proto' class BackfillJob(BaseModel): errors: Optional[List[Error]] = Field( None, description='Output only. Errors which caused the backfill job to fail.' ) lastEndTime: Optional[str] = Field( None, description="Output only. Backfill job's end time." ) lastStartTime: Optional[str] = Field( None, description="Output only. Backfill job's start time." ) state: Optional[State] = Field(None, description='Backfill job state.') trigger: Optional[Trigger] = Field( None, description="Backfill job's triggering reason." ) class BigQueryDestinationConfig(BaseModel): dataFreshness: Optional[str] = Field( None, description='The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.', ) singleTargetDataset: Optional[SingleTargetDataset] = Field( None, description='Single destination dataset.' ) sourceHierarchyDatasets: Optional[SourceHierarchyDatasets] = Field( None, description='Source hierarchy datasets.' ) class GcsDestinationConfig(BaseModel): avroFileFormat: Optional[AvroFileFormat] = Field( None, description='AVRO file format configuration.' ) fileRotationInterval: Optional[str] = Field( None, description='The maximum duration for which new events are added before a file is closed and a new file is created.', ) fileRotationMb: Optional[int] = Field( None, description='The maximum file size to be saved in the bucket.' ) jsonFileFormat: Optional[JsonFileFormat] = Field( None, description='JSON file format configuration.' ) path: Optional[str] = Field( None, description='Path inside the Cloud Storage bucket to write data to.' ) class ListLocationsResponse(BaseModel): locations: Optional[List[Location]] = Field( None, description='A list of locations that matches the specified filter in the request.', ) nextPageToken: Optional[str] = Field( None, description='The standard List next-page token.' ) class ListRoutesResponse(BaseModel): nextPageToken: Optional[str] = Field( None, 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.', ) routes: Optional[List[Route]] = Field(None, description='List of Routes.') unreachable: Optional[List[str]] = Field( None, description='Locations that could not be reached.' ) class LookupStreamObjectRequest(BaseModel): sourceObjectIdentifier: Optional[SourceObjectIdentifier] = Field( None, description='Required. The source object identifier which maps to the stream object.', ) class MysqlDatabase(BaseModel): database: Optional[str] = Field(None, description='Database name.') mysqlTables: Optional[List[MysqlTable]] = Field( None, description='Tables in the database.' ) class MysqlProfile(BaseModel): hostname: Optional[str] = Field( None, description='Required. Hostname for the MySQL connection.' ) password: Optional[str] = Field( None, description='Required. Input only. Password for the MySQL connection.' ) port: Optional[int] = Field( None, description='Port for the MySQL connection, default value is 3306.' ) sslConfig: Optional[MysqlSslConfig] = Field( None, description='SSL configuration for the MySQL connection.' ) username: Optional[str] = Field( None, description='Required. Username for the MySQL connection.' ) class MysqlRdbms(BaseModel): mysqlDatabases: Optional[List[MysqlDatabase]] = Field( None, description='Mysql databases on the server' ) class MysqlSourceConfig(BaseModel): excludeObjects: Optional[MysqlRdbms] = Field( None, description='MySQL objects to exclude from the stream.' ) includeObjects: Optional[MysqlRdbms] = Field( None, description='MySQL objects to retrieve from the source.' ) maxConcurrentBackfillTasks: Optional[int] = Field( None, description="Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", ) maxConcurrentCdcTasks: Optional[int] = Field( None, description="Maximum number of concurrent CDC tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", ) class Operation(BaseModel): done: Optional[bool] = Field( None, 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.', ) error: Optional[Status] = Field( None, description='The error result of the operation in case of failure or cancellation.', ) metadata: Optional[Dict[str, Any]] = Field( None, 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.', ) name: Optional[str] = Field( None, 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}`.', ) response: Optional[Dict[str, Any]] = Field( None, description='The normal response of the operation in case of success. 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`.', ) class OracleSchema(BaseModel): oracleTables: Optional[List[OracleTable]] = Field( None, description='Tables in the schema.' ) schema_: Optional[str] = Field(None, alias='schema', description='Schema name.') class PostgresqlSchema(BaseModel): postgresqlTables: Optional[List[PostgresqlTable]] = Field( None, description='Tables in the schema.' ) schema_: Optional[str] = Field(None, alias='schema', description='Schema name.') class PrivateConnection(BaseModel): createTime: Optional[str] = Field( None, description='Output only. The create time of the resource.' ) displayName: Optional[str] = Field(None, description='Required. Display name.') error: Optional[Error] = Field( None, description='Output only. In case of error, the details of the error in a user-friendly format.', ) labels: Optional[Dict[str, str]] = Field(None, description='Labels.') name: Optional[str] = Field(None, description="Output only. The resource's name.") state: Optional[State1] = Field( None, description='Output only. The state of the Private Connection.' ) updateTime: Optional[str] = Field( None, description='Output only. The update time of the resource.' ) vpcPeeringConfig: Optional[VpcPeeringConfig] = Field( None, description='VPC Peering Config.' ) class StreamObject(BaseModel): backfillJob: Optional[BackfillJob] = Field( None, description='The latest backfill job that was initiated for the stream object.', ) createTime: Optional[str] = Field( None, description='Output only. The creation time of the object.' ) displayName: Optional[str] = Field(None, description='Required. Display name.') errors: Optional[List[Error]] = Field( None, description='Output only. Active errors on the object.' ) name: Optional[str] = Field( None, description="Output only. The object resource's name." ) sourceObject: Optional[SourceObjectIdentifier] = Field( None, description='The object identifier in the data source.' ) updateTime: Optional[str] = Field( None, description='Output only. The last update time of the object.' ) class Validation(BaseModel): code: Optional[str] = Field( None, description='A custom code identifying this validation.' ) description: Optional[str] = Field( None, description='A short description of the validation.' ) message: Optional[List[ValidationMessage]] = Field( None, description='Messages reflecting the validation results.' ) state: Optional[State3] = Field(None, description='Validation execution status.') class ValidationResult(BaseModel): validations: Optional[List[Validation]] = Field( None, description='A list of validations (includes both executed as well as not executed validations).', ) class ConnectionProfile(BaseModel): bigqueryProfile: Optional[BigQueryProfile] = Field( None, description='BigQuery Connection Profile configuration.' ) createTime: Optional[str] = Field( None, description='Output only. The create time of the resource.' ) displayName: Optional[str] = Field(None, description='Required. Display name.') forwardSshConnectivity: Optional[ForwardSshTunnelConnectivity] = Field( None, description='Forward SSH tunnel connectivity.' ) gcsProfile: Optional[GcsProfile] = Field( None, description='Cloud Storage ConnectionProfile configuration.' ) labels: Optional[Dict[str, str]] = Field(None, description='Labels.') mysqlProfile: Optional[MysqlProfile] = Field( None, description='MySQL ConnectionProfile configuration.' ) name: Optional[str] = Field(None, description="Output only. The resource's name.") oracleProfile: Optional[OracleProfile] = Field( None, description='Oracle ConnectionProfile configuration.' ) postgresqlProfile: Optional[PostgresqlProfile] = Field( None, description='PostgreSQL Connection Profile configuration.' ) privateConnectivity: Optional[PrivateConnectivity] = Field( None, description='Private connectivity.' ) staticServiceIpConnectivity: Optional[StaticServiceIpConnectivity] = Field( None, description='Static Service IP connectivity.' ) updateTime: Optional[str] = Field( None, description='Output only. The update time of the resource.' ) class DestinationConfig(BaseModel): bigqueryDestinationConfig: Optional[BigQueryDestinationConfig] = Field( None, description='BigQuery destination configuration.' ) destinationConnectionProfile: Optional[str] = Field( None, description='Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`', ) gcsDestinationConfig: Optional[GcsDestinationConfig] = Field( None, description='A configuration for how data should be loaded to Cloud Storage.', ) class ListConnectionProfilesResponse(BaseModel): connectionProfiles: Optional[List[ConnectionProfile]] = Field( None, description='List of connection profiles.' ) nextPageToken: Optional[str] = Field( None, 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: Optional[List[str]] = Field( None, description='Locations that could not be reached.' ) class ListOperationsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, description='The standard List next-page token.' ) operations: Optional[List[Operation]] = Field( None, description='A list of operations that matches the specified filter in the request.', ) class ListPrivateConnectionsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, 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.', ) privateConnections: Optional[List[PrivateConnection]] = Field( None, description='List of private connectivity configurations.' ) unreachable: Optional[List[str]] = Field( None, description='Locations that could not be reached.' ) class ListStreamObjectsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, description='A token, which can be sent as `page_token` to retrieve the next page.', ) streamObjects: Optional[List[StreamObject]] = Field( None, description='List of stream objects.' ) class OperationMetadata(BaseModel): apiVersion: Optional[str] = Field( None, description='Output only. API version used to start the operation.' ) createTime: Optional[str] = Field( None, description='Output only. The time the operation was created.' ) endTime: Optional[str] = Field( None, description='Output only. The time the operation finished running.' ) requestedCancellation: Optional[bool] = Field( None, description='Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.', ) statusMessage: Optional[str] = Field( None, description='Output only. Human-readable status of the operation, if any.' ) target: Optional[str] = Field( None, description='Output only. Server-defined resource path for the target of the operation.', ) validationResult: Optional[ValidationResult] = Field( None, description='Output only. Results of executed validations if there are any.', ) verb: Optional[str] = Field( None, description='Output only. Name of the verb executed by the operation.' ) class OracleRdbms(BaseModel): oracleSchemas: Optional[List[OracleSchema]] = Field( None, description='Oracle schemas/databases in the database server.' ) class OracleSourceConfig(BaseModel): dropLargeObjects: Optional[DropLargeObjects] = Field( None, description='Drop large object values.' ) excludeObjects: Optional[OracleRdbms] = Field( None, description='Oracle objects to exclude from the stream.' ) includeObjects: Optional[OracleRdbms] = Field( None, description='Oracle objects to include in the stream.' ) maxConcurrentBackfillTasks: Optional[int] = Field( None, description="Maximum number of concurrent backfill tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.", ) maxConcurrentCdcTasks: Optional[int] = Field( None, description="Maximum number of concurrent CDC tasks. The number should be non-negative. If not set (or set to 0), the system's default value is used.", ) streamLargeObjects: Optional[StreamLargeObjects] = Field( None, description='Stream large object values. NOTE: This feature is currently experimental.', ) class PostgresqlRdbms(BaseModel): postgresqlSchemas: Optional[List[PostgresqlSchema]] = Field( None, description='PostgreSQL schemas in the database server.' ) class PostgresqlSourceConfig(BaseModel): excludeObjects: Optional[PostgresqlRdbms] = Field( None, description='PostgreSQL objects to exclude from the stream.' ) includeObjects: Optional[PostgresqlRdbms] = Field( None, description='PostgreSQL objects to include in the stream.' ) maxConcurrentBackfillTasks: Optional[int] = Field( None, description="Maximum number of concurrent backfill tasks. The number should be non negative. If not set (or set to 0), the system's default value will be used.", ) publication: Optional[str] = Field( None, description="Required. The name of the publication that includes the set of all tables that are defined in the stream's include_objects.", ) replicationSlot: Optional[str] = Field( None, description="Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.", ) class SourceConfig(BaseModel): mysqlSourceConfig: Optional[MysqlSourceConfig] = Field( None, description='MySQL data source configuration.' ) oracleSourceConfig: Optional[OracleSourceConfig] = Field( None, description='Oracle data source configuration.' ) postgresqlSourceConfig: Optional[PostgresqlSourceConfig] = Field( None, description='PostgreSQL data source configuration.' ) sourceConnectionProfile: Optional[str] = Field( None, description='Required. Source connection profile resoource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`', ) class StartBackfillJobResponse(BaseModel): object: Optional[StreamObject] = Field( None, description='The stream object resource a backfill job was started for.' ) class StopBackfillJobResponse(BaseModel): object: Optional[StreamObject] = Field( None, description='The stream object resource the backfill job was stopped for.' ) class BackfillAllStrategy(BaseModel): mysqlExcludedObjects: Optional[MysqlRdbms] = Field( None, description='MySQL data source objects to avoid backfilling.' ) oracleExcludedObjects: Optional[OracleRdbms] = Field( None, description='Oracle data source objects to avoid backfilling.' ) postgresqlExcludedObjects: Optional[PostgresqlRdbms] = Field( None, description='PostgreSQL data source objects to avoid backfilling.' ) class DiscoverConnectionProfileRequest(BaseModel): connectionProfile: Optional[ConnectionProfile] = Field( None, description='An ad-hoc connection profile configuration.' ) connectionProfileName: Optional[str] = Field( None, description='A reference to an existing connection profile.' ) fullHierarchy: Optional[bool] = Field( None, description='Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).', ) hierarchyDepth: Optional[int] = Field( None, description='The number of hierarchy levels below the current level to be retrieved.', ) mysqlRdbms: Optional[MysqlRdbms] = Field( None, description='MySQL RDBMS to enrich with child data objects and metadata.' ) oracleRdbms: Optional[OracleRdbms] = Field( None, description='Oracle RDBMS to enrich with child data objects and metadata.' ) postgresqlRdbms: Optional[PostgresqlRdbms] = Field( None, description='PostgreSQL RDBMS to enrich with child data objects and metadata.', ) class DiscoverConnectionProfileResponse(BaseModel): mysqlRdbms: Optional[MysqlRdbms] = Field( None, description='Enriched MySQL RDBMS object.' ) oracleRdbms: Optional[OracleRdbms] = Field( None, description='Enriched Oracle RDBMS object.' ) postgresqlRdbms: Optional[PostgresqlRdbms] = Field( None, description='Enriched PostgreSQL RDBMS object.' ) class Stream(BaseModel): backfillAll: Optional[BackfillAllStrategy] = Field( None, description='Automatically backfill objects included in the stream source configuration. Specific objects can be excluded.', ) backfillNone: Optional[BackfillNoneStrategy] = Field( None, description='Do not automatically backfill any objects.' ) createTime: Optional[str] = Field( None, description='Output only. The creation time of the stream.' ) customerManagedEncryptionKey: Optional[str] = Field( None, 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.', ) destinationConfig: Optional[DestinationConfig] = Field( None, description='Required. Destination connection profile configuration.' ) displayName: Optional[str] = Field(None, description='Required. Display name.') errors: Optional[List[Error]] = Field( None, description='Output only. Errors on the Stream.' ) labels: Optional[Dict[str, str]] = Field(None, description='Labels.') name: Optional[str] = Field(None, description="Output only. The stream's name.") sourceConfig: Optional[SourceConfig] = Field( None, description='Required. Source connection profile configuration.' ) state: Optional[State2] = Field(None, description='The state of the stream.') updateTime: Optional[str] = Field( None, description='Output only. The last update time of the stream.' ) class ListStreamsResponse(BaseModel): nextPageToken: Optional[str] = Field( None, 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: Optional[List[Stream]] = Field(None, description='List of streams') unreachable: Optional[List[str]] = Field( None, description='Locations that could not be reached.' )

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ag2-mcp-servers/datastream-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server