{
  "components": {
    "schemas": {
      "Aggregate": {
        "properties": {
          "alias": {
            "type": "string"
          },
          "concat": {
            "$ref": "#/components/schemas/ConcatAggregate"
          },
          "json": {
            "$ref": "#/components/schemas/JsonOp"
          },
          "simple": {
            "$ref": "#/components/schemas/SimpleAggregate"
          }
        },
        "title": "Aggregate",
        "type": "object"
      },
      "Any": {
        "additionalProperties": {
          "type": "object"
        },
        "properties": {
          "@type": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "Comparator": {
        "default": "COMPARATOR_EQUALS",
        "enum": [
          "COMPARATOR_EQUALS",
          "COMPARATOR_NOT_EQUALS",
          "COMPARATOR_LESS_THAN",
          "COMPARATOR_LESS_THAN_OR_EQUALS",
          "COMPARATOR_GREATER_THAN",
          "COMPARATOR_GREATER_THAN_OR_EQUALS",
          "COMPARATOR_IS",
          "COMPARATOR_IS_NOT",
          "COMPARATOR_LIKE",
          "COMPARATOR_NOT_LIKE",
          "COMPARATOR_CONTAINS",
          "COMPARATOR_NOT_CONTAINS",
          "COMPARATOR_STARTS_WITH",
          "COMPARATOR_NOT_STARTS_WITH",
          "COMPARATOR_ENDS_WITH",
          "COMPARATOR_NOT_ENDS_WITH"
        ],
        "title": "Comparator",
        "type": "string"
      },
      "CompoundCondition": {
        "properties": {
          "left": {
            "$ref": "#/components/schemas/WhereCondition"
          },
          "operator": {
            "$ref": "#/components/schemas/LogicalOperator"
          },
          "right": {
            "$ref": "#/components/schemas/WhereCondition"
          }
        },
        "type": "object"
      },
      "ConcatAggregate": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/Operand"
            },
            "type": "array"
          },
          "distinct": {
            "type": "boolean"
          },
          "separator": {
            "type": "string"
          }
        },
        "title": "ConcatAggregate",
        "type": "object"
      },
      "Connector": {
        "properties": {
          "connectorId": {
            "description": "The resource name / ID of the connector.",
            "readOnly": true,
            "type": "string"
          },
          "createTime": {
            "description": "Timestamp in UTC when the connector was created.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "destinationDatasetConfig": {
            "$ref": "#/components/schemas/DestinationDatasetConfig"
          },
          "displayName": {
            "description": "The user-friendly name for this connector.",
            "type": "string"
          },
          "externalSystemConfig": {
            "$ref": "#/components/schemas/ExternalSystemConfig"
          },
          "projectId": {
            "description": "The parent project of this connector.",
            "type": "string"
          },
          "sourceDatasetConfig": {
            "$ref": "#/components/schemas/SourceDatasetConfig"
          },
          "updateTime": {
            "description": "Timestamp in UTC of the last update to the connector. Changes with any\nmutable field update.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "displayName",
          "projectId"
        ],
        "title": "An object representing a connection to a data \"store\"",
        "type": "object"
      },
      "ConnectorKind": {
        "default": "CONNECTOR_KIND_UNSPECIFIED",
        "enum": [
          "CONNECTOR_KIND_UNSPECIFIED",
          "CONNECTOR_KIND_AIRTABLE",
          "CONNECTOR_KIND_AMAZON_S3",
          "CONNECTOR_KIND_AZURE_BLOB_STORAGE",
          "CONNECTOR_KIND_BIG_QUERY",
          "CONNECTOR_KIND_COSMOS_DB",
          "CONNECTOR_KIND_EMAIL",
          "CONNECTOR_KIND_FTP",
          "CONNECTOR_KIND_GCS",
          "CONNECTOR_KIND_GOOGLE_DRIVE",
          "CONNECTOR_KIND_GOOGLE_SHEETS",
          "CONNECTOR_KIND_HTTP_API",
          "CONNECTOR_KIND_MICROSOFT_SQL_SERVER",
          "CONNECTOR_KIND_MONGO_DB",
          "CONNECTOR_KIND_MYSQL",
          "CONNECTOR_KIND_NETSUITE",
          "CONNECTOR_KIND_ORACLE_DB",
          "CONNECTOR_KIND_POSTGRESQL",
          "CONNECTOR_KIND_QUICKBOOKS",
          "CONNECTOR_KIND_SAGE_INTACCT",
          "CONNECTOR_KIND_SALESFORCE",
          "CONNECTOR_KIND_SHOPEE",
          "CONNECTOR_KIND_SHOPIFY",
          "CONNECTOR_KIND_SNOWFLAKE"
        ],
        "type": "string"
      },
      "ConnectorSide": {
        "default": "CONNECTOR_SIDE_UNSPECIFIED",
        "enum": [
          "CONNECTOR_SIDE_UNSPECIFIED",
          "CONNECTOR_SIDE_SOURCE",
          "CONNECTOR_SIDE_DESTINATION"
        ],
        "type": "string"
      },
      "ConstantValue": {
        "properties": {
          "boolValue": {
            "type": "boolean"
          },
          "doubleValue": {
            "format": "double",
            "type": "number"
          },
          "intValue": {
            "format": "int32",
            "type": "integer"
          },
          "nullValue": {
            "properties": {},
            "type": "object"
          },
          "stringValue": {
            "type": "string"
          }
        },
        "title": "LiteralValue",
        "type": "object"
      },
      "CreateConnectorResponse": {
        "properties": {
          "connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Connector"
              }
            ],
            "description": "The created connector.",
            "type": "object"
          }
        },
        "required": [
          "connector"
        ],
        "type": "object"
      },
      "CreateEmptyDatasetBody": {
        "properties": {
          "datasetName": {
            "type": "string"
          }
        },
        "required": [
          "datasetName"
        ],
        "title": "CreateEmptyDatasetRequest",
        "type": "object"
      },
      "CreateEmptyDatasetResponse": {
        "title": "CreateEmptyDatasetResponse",
        "type": "object"
      },
      "CreateScheduleResponse": {
        "properties": {
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Schedule"
              }
            ],
            "description": "The created schedule.",
            "type": "object"
          }
        },
        "required": [
          "schedule"
        ],
        "type": "object"
      },
      "CreateTableResponse": {
        "title": "CreateTableResponse",
        "type": "object"
      },
      "CreateUploaderResponse": {
        "description": "Response message for creating an Uploader.",
        "properties": {
          "uploader": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Uploader"
              }
            ],
            "description": "The created uploader.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "DatasetTableMetadata": {
        "properties": {
          "createTime": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "recordCount": {
            "format": "uint64",
            "readOnly": true,
            "type": "string"
          },
          "updateTime": {
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "uploaderIds": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "DatasetTableMetadata",
        "type": "object"
      },
      "DbForeignKey": {
        "properties": {
          "fieldNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "onDelete": {
            "$ref": "#/components/schemas/ForeignKeyAction"
          },
          "onUpdate": {
            "$ref": "#/components/schemas/ForeignKeyAction"
          },
          "referencedFieldNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "referencedNamespace": {
            "type": "string"
          },
          "referencedTableName": {
            "type": "string"
          }
        },
        "title": "DbForeignKey",
        "type": "object"
      },
      "DbPrimaryKey": {
        "properties": {
          "fieldNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "DbPrimaryKey",
        "type": "object"
      },
      "DbUniqueConstraint": {
        "properties": {
          "fieldNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "DbUniqueConstraint",
        "type": "object"
      },
      "DedupMode": {
        "default": "DEDUP_MODE_UNSPECIFIED",
        "enum": [
          "DEDUP_MODE_UNSPECIFIED",
          "DEDUP_MODE_ALL_ROWS",
          "DEDUP_MODE_NEW_ROWS_SINCE_LAST_RUN_ONLY"
        ],
        "type": "string"
      },
      "DeleteDatasetResponse": {
        "title": "DeleteDatasetResponse",
        "type": "object"
      },
      "DeleteSavedQueryResponse": {
        "title": "DeleteSavedQueryResponse",
        "type": "object"
      },
      "DeleteTableResponse": {
        "title": "DeleteTableResponse",
        "type": "object"
      },
      "DestinationDatasetConfig": {
        "properties": {
          "dataset": {
            "$ref": "#/components/schemas/NamedDataset"
          }
        },
        "required": [
          "dataset"
        ],
        "type": "object"
      },
      "DuplicateDatasetBody": {
        "properties": {
          "newDatasetName": {
            "description": "Name of the new dataset to create.",
            "type": "string"
          },
          "newProjectId": {
            "description": "Project ID of the project to create the new dataset in.",
            "type": "string"
          }
        },
        "required": [
          "newDatasetName",
          "newProjectId"
        ],
        "title": "DuplicateDatasetRequest",
        "type": "object"
      },
      "DuplicateDatasetResponse": {
        "title": "DuplicateDatasetResponse",
        "type": "object"
      },
      "DuplicateTableBody": {
        "properties": {
          "newDatasetName": {
            "type": "string"
          },
          "newProjectId": {
            "type": "string"
          },
          "newTableName": {
            "type": "string"
          }
        },
        "required": [
          "newDatasetName",
          "newProjectId",
          "newTableName"
        ],
        "title": "DuplicateTableRequest",
        "type": "object"
      },
      "DuplicateTableResponse": {
        "title": "DuplicateTableResponse",
        "type": "object"
      },
      "EnqueuePipelineSourceReadJobBody": {
        "type": "object"
      },
      "EnqueuePipelineSourceReadJobResponse": {
        "properties": {
          "jobId": {
            "description": "The ID of the job created to run the pipeline.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ErrorKind": {
        "default": "ERROR_KIND_UNSPECIFIED",
        "description": "The kind of error that occurred.  Indicates if the error is associated with\na specific row or if it is a connector-level error.\n\n - ERROR_KIND_UNSPECIFIED: This variant is never used and is only included for technical reasons.\n - ERROR_KIND_CONNECTOR: This indicates that a connector-level error occurred which isn't\nassociated with a specific row.  Some examples of this are authentication\nerrors, network errors, etc.\n - ERROR_KIND_ROW: This indicates that an error occurred while processing a specific row.\nSome examples of this are data type errors, validation errors, formula\nerrors, and other transformation errors.",
        "enum": [
          "ERROR_KIND_UNSPECIFIED",
          "ERROR_KIND_CONNECTOR",
          "ERROR_KIND_ROW"
        ],
        "type": "string"
      },
      "ExternalSystemConfig": {
        "properties": {
          "kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorKind"
              }
            ],
            "description": "What kind of data \"store\" this connects to.",
            "type": "object"
          },
          "side": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConnectorSide"
              }
            ],
            "title": "Whether this data \"store\" is read from or written to",
            "type": "object"
          }
        },
        "required": [
          "kind",
          "side"
        ],
        "type": "object"
      },
      "FieldType": {
        "default": "FIELD_TYPE_DOUBLE",
        "enum": [
          "FIELD_TYPE_DOUBLE",
          "FIELD_TYPE_FLOAT",
          "FIELD_TYPE_INT32",
          "FIELD_TYPE_INT64",
          "FIELD_TYPE_UINT32",
          "FIELD_TYPE_UINT64",
          "FIELD_TYPE_SINT32",
          "FIELD_TYPE_SINT64",
          "FIELD_TYPE_FIXED32",
          "FIELD_TYPE_FIXED64",
          "FIELD_TYPE_SFIXED32",
          "FIELD_TYPE_SFIXED64",
          "FIELD_TYPE_BOOL",
          "FIELD_TYPE_STRING",
          "FIELD_TYPE_BYTES",
          "FIELD_TYPE_DATE",
          "FIELD_TYPE_NUMERIC",
          "FIELD_TYPE_DATETIME",
          "FIELD_TYPE_TIME",
          "FIELD_TYPE_ANY",
          "FIELD_TYPE_UUID",
          "FIELD_TYPE_JSON",
          "FIELD_TYPE_JSONB"
        ],
        "title": "FieldType",
        "type": "string"
      },
      "ForeignKeyAction": {
        "default": "FOREIGN_KEY_ACTION_RESTRICT",
        "enum": [
          "FOREIGN_KEY_ACTION_RESTRICT",
          "FOREIGN_KEY_ACTION_CASCADE",
          "FOREIGN_KEY_ACTION_SET_NULL",
          "FOREIGN_KEY_ACTION_NO_ACTION",
          "FOREIGN_KEY_ACTION_SET_DEFAULT"
        ],
        "title": "ForeignKeyAction",
        "type": "string"
      },
      "Gateway": {
        "properties": {
          "createTime": {
            "format": "date-time",
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "updateTime": {
            "format": "date-time",
            "type": "string"
          }
        },
        "title": "Project",
        "type": "object"
      },
      "GetConnectorResponse": {
        "description": "Response message for fetching a Connector.",
        "properties": {
          "connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Connector"
              }
            ],
            "description": "The Connector that matches the request.",
            "type": "object"
          }
        },
        "required": [
          "connector"
        ],
        "type": "object"
      },
      "GetDatasetTableDescriptorResponse": {
        "properties": {
          "tableDescriptor": {
            "$ref": "#/components/schemas/TableDescriptor"
          }
        },
        "title": "GetDatasetTableDescriptorResponse",
        "type": "object"
      },
      "GetDatasetTablesResponse": {
        "properties": {
          "tableMetadata": {
            "items": {
              "$ref": "#/components/schemas/DatasetTableMetadata"
            },
            "type": "array"
          },
          "tableNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "GetDatasetTablesResponse",
        "type": "object"
      },
      "GetDatasetsResponse": {
        "properties": {
          "datasetNames": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "GetDatasetsResponse",
        "type": "object"
      },
      "GetJobStatusResponse": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/JobStatus"
          }
        },
        "type": "object"
      },
      "GetPipelineResponse": {
        "description": "Response message for fetching a Pipeline.",
        "properties": {
          "pipeline": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pipeline"
              }
            ],
            "description": "The Pipeline that matches the request.",
            "type": "object"
          }
        },
        "required": [
          "pipeline"
        ],
        "type": "object"
      },
      "GetPipelineTransformerResponse": {
        "properties": {
          "transformer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PipelineTransformer"
              }
            ],
            "description": "The pipeline transformer.",
            "type": "object"
          }
        },
        "required": [
          "transformer"
        ],
        "type": "object"
      },
      "GetProjectsResponse": {
        "properties": {
          "projects": {
            "items": {
              "$ref": "#/components/schemas/Gateway"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GetScheduleResponse": {
        "properties": {
          "schedule": {
            "$ref": "#/components/schemas/Schedule"
          }
        },
        "required": [
          "schedule"
        ],
        "type": "object"
      },
      "GetUploaderResponse": {
        "description": "Response message for fetching an Uploader.",
        "properties": {
          "uploader": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Uploader"
              }
            ],
            "description": "The uploader that matches the request.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "GroupBy": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/Operand"
            },
            "type": "array"
          }
        },
        "title": "GroupBy",
        "type": "object"
      },
      "InsertDatasetRowsResponse": {
        "properties": {
          "writeIndex": {
            "description": "The write index of the inserted/upserted rows.  Corresponds to the \"Write\nIndex\" metadata field visible in the query builder UI.",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "JobDestinationWriteStatus": {
        "properties": {
          "id": {
            "type": "string"
          },
          "msgVersion": {
            "format": "int64",
            "type": "integer"
          },
          "recipientConnectorId": {
            "type": "string"
          },
          "recordsFailedTransform": {
            "format": "uint64",
            "title": "Number of records that failed transformation due to an error",
            "type": "string"
          },
          "recordsFailedWrite": {
            "format": "uint64",
            "title": "Number of records that failed to write to the destination connector after transformation",
            "type": "string"
          },
          "recordsManuallySkipped": {
            "format": "uint64",
            "title": "Number of records skipped manually by the user in the UI by clicking the \"skip row\" checkboxes",
            "type": "string"
          },
          "recordsProgrammaticallySkipped": {
            "format": "uint64",
            "title": "Number of records skipped by a formula, quickfix, or other programmatic means",
            "type": "string"
          },
          "recordsWrittenSuccessfully": {
            "format": "uint64",
            "title": "Number of records that were successfully written to the destination connector",
            "type": "string"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JobDestinationWriteStatus.Status"
              }
            ],
            "title": "Status of the write portion of the job",
            "type": "object"
          }
        },
        "type": "object"
      },
      "JobDestinationWriteStatus.Status": {
        "default": "STATUS_UNSPECIFIED",
        "enum": [
          "STATUS_UNSPECIFIED",
          "STATUS_RUNNING",
          "STATUS_SUCCESS",
          "STATUS_FAILURE"
        ],
        "type": "string"
      },
      "JobError": {
        "properties": {
          "destinationFieldIndex": {
            "format": "int64",
            "nullable": true,
            "type": "string"
          },
          "destinationFieldName": {
            "nullable": true,
            "type": "string"
          },
          "errorKind": {
            "$ref": "#/components/schemas/ErrorKind"
          },
          "errorMessage": {
            "type": "string"
          }
        },
        "required": [
          "errorKind",
          "errorMessage"
        ],
        "type": "object"
      },
      "JobErrorReportRow": {
        "properties": {
          "destinationData": {
            "properties": {},
            "type": "object"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/JobError"
            },
            "type": "array"
          },
          "rowNumber": {
            "description": "One-indexed row number (the first row is 1) of the error if the error is\nassociated with a row.",
            "format": "int64",
            "nullable": true,
            "type": "string"
          },
          "sourceData": {
            "properties": {},
            "type": "object"
          }
        },
        "required": [
          "errors",
          "sourceData"
        ],
        "type": "object"
      },
      "JobSourceReadStatus": {
        "description": "Holds information about the status of the read portion of a job.  The read happens on the source\nconnection.",
        "properties": {
          "end": {
            "format": "date-time",
            "type": "string"
          },
          "failureReason": {
            "nullable": true,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "messageCount": {
            "description": "Total number of records read from the source.  If the job is still running, this is the number\nof records read so far.",
            "format": "uint64",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/JobSourceReadStatus.Status"
          }
        },
        "type": "object"
      },
      "JobSourceReadStatus.Status": {
        "default": "STATUS_UNSPECIFIED",
        "description": " - STATUS_NO_CHANGE_FROM_LAST: This is used when reporting batch statuses without trying to change the source job status.",
        "enum": [
          "STATUS_UNSPECIFIED",
          "STATUS_CREATING",
          "STATUS_FAILURE",
          "STATUS_PENDING",
          "STATUS_QUEUED",
          "STATUS_RUNNING",
          "STATUS_SUCCESS",
          "STATUS_SKIPPED",
          "STATUS_NO_CHANGE_FROM_LAST"
        ],
        "type": "string"
      },
      "JobStatus": {
        "properties": {
          "errorRerunStatuses": {
            "description": "Statuses for re-run failed row jobs that were launched for this job.",
            "items": {
              "$ref": "#/components/schemas/GetJobStatusResponse"
            },
            "type": "array"
          },
          "sourceConnectorReadStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JobSourceReadStatus"
              }
            ],
            "description": "Status of the read-side of the job.",
            "type": "object"
          },
          "writeStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/JobDestinationWriteStatus"
              }
            ],
            "description": "Status of the write-side of the job.  This may not be populated if the\nwrite portion of the job has not yet started.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "Join": {
        "properties": {
          "constraint": {
            "$ref": "#/components/schemas/WhereCondition"
          },
          "operator": {
            "$ref": "#/components/schemas/JoinType"
          },
          "relation": {
            "$ref": "#/components/schemas/Table"
          }
        },
        "title": "JoinExpression",
        "type": "object"
      },
      "JoinType": {
        "default": "JOIN_TYPE_INNER",
        "enum": [
          "JOIN_TYPE_INNER",
          "JOIN_TYPE_LEFT",
          "JOIN_TYPE_RIGHT",
          "JOIN_TYPE_FULL"
        ],
        "title": "JoinOperator",
        "type": "string"
      },
      "JsonOp": {
        "properties": {
          "left": {
            "items": {
              "$ref": "#/components/schemas/Operand"
            },
            "type": "array"
          },
          "operator": {
            "$ref": "#/components/schemas/JsonOpType"
          },
          "right": {
            "type": "string"
          }
        },
        "title": "JsonAccess",
        "type": "object"
      },
      "JsonOpType": {
        "default": "JSON_OP_TYPE_GET_JSON_FIELD",
        "description": "- JSON_OP_TYPE_GET_JSON_FIELD: `->`. Retrieves JSON field as JSON value.\n - JSON_OP_TYPE_CAST_JSON_FIELD: `->>`. Retrieves JSON field and casts it to an appropriate SQL type.",
        "enum": [
          "JSON_OP_TYPE_GET_JSON_FIELD",
          "JSON_OP_TYPE_CAST_JSON_FIELD"
        ],
        "title": "JsonOperator",
        "type": "string"
      },
      "ListConnectorsResponse": {
        "description": "Response message for listing connectors.",
        "properties": {
          "connectors": {
            "description": "The connectors that match the request.",
            "items": {
              "$ref": "#/components/schemas/Connector"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListJobErrorsResponse": {
        "properties": {
          "errors": {
            "description": "The errors that match the request.  Errors are grouped by row and are\nreturned in order by row number.",
            "items": {
              "$ref": "#/components/schemas/JobErrorReportRow"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "errors"
        ],
        "type": "object"
      },
      "ListPipelineJobsResponse": {
        "description": "Response message for listing pipeline jobs.",
        "properties": {
          "jobs": {
            "description": "The jobs that match the request.",
            "items": {
              "$ref": "#/components/schemas/v1.Job"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListPipelinesResponse": {
        "properties": {
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "pipelines": {
            "items": {
              "$ref": "#/components/schemas/Pipeline"
            },
            "title": "The list of pipelines",
            "type": "array"
          }
        },
        "required": [
          "pipelines"
        ],
        "type": "object"
      },
      "ListUploaderJobsResponse": {
        "description": "Response message for listing uploader jobs.",
        "properties": {
          "jobs": {
            "description": "The jobs that match the request.",
            "items": {
              "$ref": "#/components/schemas/v1.Job"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ListUploadersResponse": {
        "description": "Response message for listing uploaders.  Returns uploaders in reverse\nchronological order by creation time (most recently created uploaders first).",
        "properties": {
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "nullable": true,
            "readOnly": true,
            "type": "string"
          },
          "uploaders": {
            "description": "The uploaders that match the request. Items are in reverse chronological\norder by creation time (most recently created uploaders first).",
            "items": {
              "$ref": "#/components/schemas/Uploader"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "LogicalOperator": {
        "default": "LOGICAL_OPERATOR_AND",
        "enum": [
          "LOGICAL_OPERATOR_AND",
          "LOGICAL_OPERATOR_OR"
        ],
        "title": "LogicalOperator",
        "type": "string"
      },
      "MakeEmptiesUndefinedConfig": {
        "description": "Per-field config controlling the behavior of `make_empties_undefined` for that field.",
        "properties": {
          "makeArrayUndefined": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MakeEmptiesUndefinedMode"
              }
            ],
            "description": "This flag is ignored unless the field has `is_repeated` set to true.  If it does, then this flag determines\nwhether or not the top-level array will be set to undefined if all of its elements are empty.",
            "type": "object"
          },
          "makeEmptiesUndefined": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MakeEmptiesUndefinedMode"
              }
            ],
            "description": "If this is set to true, then `make_empties_undefined` will be applied to the field.  For repeated fields,\nthis controls the behavior of `make_empties_undefined` for individual elements of the array.",
            "type": "object"
          }
        },
        "title": "MakeEmptiesUndefinedConfig",
        "type": "object"
      },
      "MakeEmptiesUndefinedMode": {
        "default": "MAKE_EMPTIES_UNDEFINED_MODE_IGNORE",
        "description": "Controls how \"empty values\" are handled.\n\n - MAKE_EMPTIES_UNDEFINED_MODE_IGNORE: The field will be left as-is",
        "enum": [
          "MAKE_EMPTIES_UNDEFINED_MODE_IGNORE",
          "MAKE_EMPTIES_UNDEFINED_MODE_MAKE_NULL",
          "MAKE_EMPTIES_UNDEFINED_MODE_MAKE_UNDEFINED"
        ],
        "title": "MakeEmptiesUndefinedMode",
        "type": "string"
      },
      "NamedDataset": {
        "properties": {
          "datasetsName": {
            "type": "string"
          },
          "tableName": {
            "type": "string"
          }
        },
        "required": [
          "datasetsName",
          "tableName"
        ],
        "type": "object"
      },
      "NewJsonRows": {
        "properties": {
          "rows": {
            "items": {
              "properties": {},
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "rows"
        ],
        "type": "object"
      },
      "NewRows": {
        "properties": {
          "jsonRows": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NewJsonRows"
              }
            ],
            "description": "Arbitrary JSON data to insert for the row.  Must match the schema of the table.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "NullValue": {
        "default": "NULL_VALUE",
        "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value.",
        "enum": [
          "NULL_VALUE"
        ],
        "type": "string"
      },
      "Operand": {
        "properties": {
          "aggregate": {
            "$ref": "#/components/schemas/Aggregate"
          },
          "literal": {
            "$ref": "#/components/schemas/ConstantValue"
          },
          "metadataField": {
            "$ref": "#/components/schemas/OsmosMetadataField"
          },
          "tableColumn": {
            "$ref": "#/components/schemas/TableColumn"
          }
        },
        "title": "Operand",
        "type": "object"
      },
      "OrderBy": {
        "properties": {
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "tableColumn": {
            "$ref": "#/components/schemas/TableColumn"
          }
        },
        "type": "object"
      },
      "OsmosMetadataField": {
        "default": "OSMOS_METADATA_FIELD_UNSPECIFIED",
        "enum": [
          "OSMOS_METADATA_FIELD_UNSPECIFIED",
          "OSMOS_METADATA_FIELD_ID",
          "OSMOS_METADATA_FIELD_DATE_MODIFIED",
          "OSMOS_METADATA_FIELD_DATE_CREATED",
          "OSMOS_METADATA_FIELD_USER_ID",
          "OSMOS_METADATA_FIELD_PIPELINE_ID",
          "OSMOS_METADATA_FIELD_JOB_ID",
          "OSMOS_METADATA_FIELD_UPLOADER_TOKEN",
          "OSMOS_METADATA_FIELD_RAW_SOURCE_DATA_JSON",
          "OSMOS_METADATA_FIELD_WRITE_INDEX",
          "OSMOS_METADATA_FIELD_API_KEY_ID",
          "OSMOS_METADATA_FIELD_IDENTITY_ID"
        ],
        "type": "string"
      },
      "Pipeline": {
        "properties": {
          "createTime": {
            "description": "The time at which the pipeline was created.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "An optional description of the pipeline.",
            "nullable": true,
            "type": "string"
          },
          "destinationConnectorId": {
            "description": "The ID of a connector which provides the data exported by this pipeline.\nThe connector must be CONNECTOR_SIDE_DESTINATION.",
            "type": "string"
          },
          "displayName": {
            "description": "The user-friendly name for this pipeline.",
            "type": "string"
          },
          "pipelineId": {
            "description": "The resource name / ID of the pipeline.",
            "readOnly": true,
            "type": "string"
          },
          "projectId": {
            "description": "The parent project of this pipeline.",
            "type": "string"
          },
          "sourceConnectorId": {
            "description": "The ID of a connector which provides the data imported by this pipeline.\nThe connector must be CONNECTOR_SIDE_SOURCE.",
            "type": "string"
          },
          "updateTime": {
            "description": "The time at which the pipeline was last updated.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "destinationConnectorId",
          "displayName",
          "projectId",
          "sourceConnectorId"
        ],
        "type": "object"
      },
      "PipelineTransformer": {
        "properties": {
          "mappedColumns": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "quickFixes": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "singleRowEdits": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "trainingInput": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "trainingOutput": {
            "items": {
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Query": {
        "properties": {
          "select": {
            "$ref": "#/components/schemas/Select"
          }
        },
        "title": "Query",
        "type": "object"
      },
      "RunDatasetsQueryBody": {
        "properties": {
          "query": {
            "$ref": "#/components/schemas/Query"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "RunDatasetsQueryResponse": {
        "properties": {
          "rows": {
            "items": {
              "properties": {},
              "type": "object"
            },
            "type": "array"
          },
          "schema": {
            "description": "The set of fields returned by the query.  Since the response is streaming,\nthis may only be populated in the first response message of the stream.",
            "items": {
              "$ref": "#/components/schemas/SchemaField"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Schedule": {
        "description": "A schedule that defines when a pipeline will be automatically run.",
        "properties": {
          "cronExpression": {
            "description": "A cron expression specifying when the schedule should run.\n\nThe cron expression should be in standard crontab format like \"0 0,12 * *\n*\".\n\nFor details and examples, see:\nhttps://cloud.google.com/scheduler/docs/configuring/cron-job-schedules#cron_job_format",
            "type": "string"
          },
          "pipelineId": {
            "description": "The pipeline for the schedule.",
            "type": "string"
          },
          "projectId": {
            "description": "The project in which the pipeline for the schedule is located.",
            "type": "string"
          },
          "timeZone": {
            "description": "Specifies the time zone to be used in interpreting schedule. The value of\nthis field must be a time zone name from the tz database\n(https://en.wikipedia.org/wiki/Tz_database).\n\nNote that some time zones include a provision for daylight savings time.\nThe rules for daylight saving time are determined by the chosen tz. For UTC\nuse the string \"utc\". If a time zone is not specified, the default will be\nin UTC (also known as GMT).",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "cronExpression",
          "pipelineId",
          "projectId"
        ],
        "type": "object"
      },
      "SchemaEnforcementVersion": {
        "default": "SCHEMA_ENFORCEMENT_VERSION_UNSPECIFIED",
        "enum": [
          "SCHEMA_ENFORCEMENT_VERSION_UNSPECIFIED",
          "SCHEMA_ENFORCEMENT_VERSION_V1",
          "SCHEMA_ENFORCEMENT_VERSION_V2"
        ],
        "title": "SchemaEnforcementVersion",
        "type": "string"
      },
      "SchemaField": {
        "description": "An individual field within a Schema.",
        "properties": {
          "fieldName": {
            "description": "The name of this field, used as the name of the field in the proto file.",
            "type": "string"
          },
          "fieldType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FieldType"
              }
            ],
            "description": "Any field that we support inside a [super::SchemaOne] needs to be a part of\nthis enum.\n\nThe type of this particular field (could be a primitive or a supported\nelevated type).",
            "type": "object"
          },
          "isNullable": {
            "type": "boolean"
          },
          "isPrimary": {
            "description": "this value should be true if the value is a primary key.  It is currently\nonly used by the OracleDB connector to control upsert behavior.",
            "type": "boolean"
          },
          "isRepeated": {
            "description": "Whether or not this is a repeated field.",
            "type": "boolean"
          },
          "isUnique": {
            "title": "for DB the value may have uniqueness constraints, if so\nis_unique should be true",
            "type": "boolean"
          },
          "makeEmptiesUndefinedConfig": {
            "$ref": "#/components/schemas/MakeEmptiesUndefinedConfig"
          },
          "metadata": {
            "$ref": "#/components/schemas/SchemaFieldMetadata"
          },
          "subfields": {
            "description": "Any nested fields this field contains.",
            "items": {
              "$ref": "#/components/schemas/SchemaField"
            },
            "type": "array"
          },
          "systemType": {
            "description": "The name of the type that the external system uses may be different\nthan what we use as field_type, we record that type here.  It is\ncurrently only used by the OracleDB connector to control upsert behavior.",
            "type": "string"
          }
        },
        "title": "SchemaField",
        "type": "object"
      },
      "SchemaFieldMetadata": {
        "properties": {
          "dateFormat": {
            "type": "string"
          },
          "outStrftime": {
            "type": "string"
          }
        },
        "title": "SchemaFieldMetadata",
        "type": "object"
      },
      "Select": {
        "properties": {
          "columns": {
            "items": {
              "$ref": "#/components/schemas/SelectColumn"
            },
            "type": "array"
          },
          "from": {
            "$ref": "#/components/schemas/Table"
          },
          "groupBy": {
            "$ref": "#/components/schemas/GroupBy"
          },
          "joins": {
            "items": {
              "$ref": "#/components/schemas/Join"
            },
            "type": "array"
          },
          "limit": {
            "format": "uint64",
            "nullable": true,
            "type": "string"
          },
          "offset": {
            "format": "uint64",
            "nullable": true,
            "type": "string"
          },
          "orderBy": {
            "items": {
              "$ref": "#/components/schemas/OrderBy"
            },
            "type": "array"
          },
          "whereConditions": {
            "description": "These are filters that can map to WHERE or HAVING conditions under the hood\ndepending on if the referenced columns are aggregates or not.\n\nThey are split into WHERE and HAVING, and then each of those groups are AND'd\ntogether.",
            "items": {
              "$ref": "#/components/schemas/WhereCondition"
            },
            "type": "array"
          }
        },
        "title": "Select",
        "type": "object"
      },
      "SelectColumn": {
        "properties": {
          "aggregate": {
            "$ref": "#/components/schemas/Aggregate"
          },
          "alias": {
            "type": "string"
          },
          "metadataField": {
            "$ref": "#/components/schemas/OsmosMetadataField"
          },
          "tableColumn": {
            "$ref": "#/components/schemas/TableColumn"
          }
        },
        "type": "object"
      },
      "SimpleAggregate": {
        "properties": {
          "aggregateFunction": {
            "$ref": "#/components/schemas/SimpleAggregationFunctionType"
          },
          "columns": {
            "items": {
              "$ref": "#/components/schemas/Operand"
            },
            "type": "array"
          }
        },
        "title": "SimpleAggregate",
        "type": "object"
      },
      "SimpleAggregationFunctionType": {
        "default": "SIMPLE_AGGREGATION_FUNCTION_TYPE_COUNT",
        "enum": [
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_COUNT",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_SUM",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_AVG",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_MIN",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_MAX",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_COUNT_DISTINCT",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_AND_ALL",
          "SIMPLE_AGGREGATION_FUNCTION_TYPE_OR_ANY"
        ],
        "title": "SimpleAggregationFunctionType",
        "type": "string"
      },
      "SimpleCondition": {
        "properties": {
          "left": {
            "$ref": "#/components/schemas/Operand"
          },
          "operator": {
            "$ref": "#/components/schemas/Comparator"
          },
          "right": {
            "$ref": "#/components/schemas/Operand"
          }
        },
        "type": "object"
      },
      "Sort": {
        "default": "SORT_UNSPECIFIED",
        "enum": [
          "SORT_UNSPECIFIED",
          "SORT_ASC",
          "SORT_DESC"
        ],
        "type": "string"
      },
      "SourceDatasetConfig": {
        "properties": {
          "dedupMode": {
            "$ref": "#/components/schemas/DedupMode"
          },
          "namedDataset": {
            "$ref": "#/components/schemas/NamedDataset"
          },
          "query": {
            "$ref": "#/components/schemas/Query"
          }
        },
        "required": [
          "dedupMode"
        ],
        "type": "object"
      },
      "SqlWriteMode": {
        "default": "SQL_WRITE_MODE_INSERT",
        "description": "Controls the behavior of the connector when writing to SQL.\n\n - SQL_WRITE_MODE_INSERT: SQL_WRITE_MODE_INSERT\n - SQL_WRITE_MODE_UPSERT: SQL_WRITE_MODE_UPSERT",
        "enum": [
          "SQL_WRITE_MODE_INSERT",
          "SQL_WRITE_MODE_UPSERT"
        ],
        "title": "SqlWriteMode",
        "type": "string"
      },
      "Table": {
        "properties": {
          "datasetName": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "tableName": {
            "type": "string"
          }
        },
        "title": "Table",
        "type": "object"
      },
      "TableColumn": {
        "properties": {
          "columnName": {
            "type": "string"
          },
          "table": {
            "$ref": "#/components/schemas/Table"
          }
        },
        "title": "TableColumn",
        "type": "object"
      },
      "TableDescriptor": {
        "properties": {
          "name": {
            "type": "string"
          },
          "schema": {
            "$ref": "#/components/schemas/v1.Schema"
          }
        },
        "title": "TableDescriptor",
        "type": "object"
      },
      "UpdateConnectorResponse": {
        "description": "Response message for updating a Connector.",
        "properties": {
          "connector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Connector"
              }
            ],
            "description": "The newly updated Connector values.",
            "type": "object"
          }
        },
        "required": [
          "connector"
        ],
        "type": "object"
      },
      "UpdateDatasetNameBody": {
        "properties": {
          "newDatasetName": {
            "type": "string"
          }
        },
        "required": [
          "newDatasetName"
        ],
        "title": "UpdateDatasetNameRequest",
        "type": "object"
      },
      "UpdateDatasetNameResponse": {
        "title": "UpdateDatasetNameResponse",
        "type": "object"
      },
      "UpdatePipelineResponse": {
        "description": "Response message for updating a Pipeline.",
        "properties": {
          "pipeline": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pipeline"
              }
            ],
            "description": "The newly updated Pipeline values.",
            "type": "object"
          }
        },
        "required": [
          "pipeline"
        ],
        "type": "object"
      },
      "UpdateScheduleResponse": {
        "properties": {
          "schedule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Schedule"
              }
            ],
            "description": "The updated schedule.",
            "type": "object"
          }
        },
        "required": [
          "schedule"
        ],
        "type": "object"
      },
      "UpdateUploaderResponse": {
        "description": "Response message for creating an Uploader.",
        "properties": {
          "uploader": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Uploader"
              }
            ],
            "description": "The updated uploader.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "UploadFileMetadata": {
        "properties": {
          "fileName": {
            "description": "The name of the file uploaded.",
            "type": "string"
          },
          "userGroup": {
            "description": "The user group set in the uploader configuration, if any.",
            "nullable": true,
            "type": "string"
          },
          "userId": {
            "description": "The user ID set in the uploader configuration, if any.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Uploader": {
        "description": "An uploader resource.",
        "properties": {
          "counts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UploaderCounts"
              }
            ],
            "description": "Information about the number of uploaded records and unique uploads for\nthis uploader in the past 30 days.",
            "type": "object"
          },
          "createTime": {
            "description": "Timestamp in UTC when the uploader was created.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the uploader.",
            "nullable": true,
            "type": "string"
          },
          "destinationConnectorId": {
            "description": "The ID of the destination connector that this uploader will send data to.\nThis is an immutable field. A value must be provided when creating the\nresource but any values provided when updating the resource will be\nignored.",
            "type": "string"
          },
          "displayName": {
            "description": "The display name of the uploader.",
            "nullable": true,
            "type": "string"
          },
          "projectId": {
            "description": "The parent project of this uploader.",
            "type": "string"
          },
          "updateTime": {
            "description": "Timestamp in UTC of the last update to the uploader. Changes with any\nmutable field update. Does NOT change on newly run Jobs.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "uploaderId": {
            "description": "The resource name / ID of the uploader. This is sometimes referred\nto as the token in the context of embedded uploaders.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ],
        "type": "object"
      },
      "UploaderCounts": {
        "properties": {
          "failedRecordCount": {
            "format": "uint64",
            "title": "Number of records with errors in the past 30 days",
            "type": "string"
          },
          "successfulRecordCount": {
            "format": "uint64",
            "title": "Number of successfully uploaded records in the past 30 days",
            "type": "string"
          },
          "uploadCount": {
            "format": "int64",
            "title": "Number of unique uploads in the past 30 days",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ValidationWebhookConfig": {
        "properties": {
          "maxParallelRequests": {
            "description": "The maximum number of parallel requests to send.  Defaults to 1.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "maxRecordsPerBatch": {
            "description": "The maximum number of records to send in a single batch.  If not provided,\nthere is no limit.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "maxRequestSizeBytes": {
            "description": "The maximum size of a single request in bytes.  If not provided, there is\nno limit.",
            "format": "int32",
            "nullable": true,
            "type": "integer"
          },
          "webhookUri": {
            "description": "The URI which validation requests will be sent to.",
            "type": "string"
          }
        },
        "required": [
          "webhookUri"
        ],
        "title": "Configuration for a validation webhook.  For more information, see the\nOsmos docs:\nhttps://docs.osmos.io/developer-docs/validation-and-transformation-webhooks",
        "type": "object"
      },
      "WhereCondition": {
        "properties": {
          "compoundCondition": {
            "$ref": "#/components/schemas/CompoundCondition"
          },
          "simpleCondition": {
            "$ref": "#/components/schemas/SimpleCondition"
          }
        },
        "title": "WhereCondition",
        "type": "object"
      },
      "rpc.Status": {
        "properties": {
          "code": {
            "format": "int32",
            "type": "integer"
          },
          "details": {
            "items": {
              "$ref": "#/components/schemas/Any"
            },
            "type": "array"
          },
          "message": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "v1.Job": {
        "properties": {
          "createTime": {
            "description": "Timestamp in UTC when the job was created.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "jobId": {
            "description": "The ID of the job.",
            "readOnly": true,
            "type": "string"
          },
          "projectId": {
            "description": "The ID of the project that the job belongs to.",
            "type": "string"
          },
          "uploadFileMetadata": {
            "$ref": "#/components/schemas/UploadFileMetadata"
          }
        },
        "required": [
          "projectId"
        ],
        "type": "object"
      },
      "v1.Schema": {
        "properties": {
          "arrayExpansionLimit": {
            "description": "the amount to flatten out arrays if the schema is nested.",
            "format": "uint64",
            "type": "string"
          },
          "dbForeignKeys": {
            "items": {
              "$ref": "#/components/schemas/DbForeignKey"
            },
            "title": "/ Used to capture foreign key relationships for relational databases",
            "type": "array"
          },
          "dbPrimaryKey": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DbPrimaryKey"
              }
            ],
            "title": "/ Used to capture primary key for relational databases",
            "type": "object"
          },
          "dbUniqueConstraints": {
            "items": {
              "$ref": "#/components/schemas/DbUniqueConstraint"
            },
            "title": "/ Used to capture unique key constraints for relational databases",
            "type": "array"
          },
          "fields": {
            "description": "The payload of the actual schema.",
            "items": {
              "$ref": "#/components/schemas/SchemaField"
            },
            "type": "array"
          },
          "id": {
            "description": "A unique ID associated with this schema.",
            "type": "string"
          },
          "schemaEnforcement": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SchemaEnforcementVersion"
              }
            ],
            "title": "the validation logic to use when enforcing output rows. Must be\nversioned because anytime the validation logic changes, you can\nbreak active pipelines",
            "type": "object"
          }
        },
        "title": "Schema",
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearer_auth": {
        "description": "\n                In order to interact with the Osmos API you or your application must authenticate.\n                Osmos handles this via a Bearer authentication.\n\n                You can generate a new API token by visiting the IAM (https://app.osmos.io/iam/manage) section of the Osmos App.",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "externalDocs": {
    "description": "Osmos Documentation",
    "url": "https://docs.osmos.io"
  },
  "info": {
    "contact": {
      "email": "support@osmos.io",
      "name": "Osmos Support",
      "url": "https://www.osmos.io/contact-us"
    },
    "description": "Osmos Public API",
    "title": "Osmos API",
    "version": "1.0"
  },
  "openapi": "3.0.1",
  "paths": {
    "/public/v1/projects": {
      "get": {
        "description": "Retrieve all projects accessible to the user",
        "operationId": "PublicApiService_GetProjects",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProjectsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get projects",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{connector.projectId}/connectors/{connector.connectorId}": {
      "patch": {
        "description": "Change the display name of a connector.",
        "operationId": "PublicApiService_UpdateConnector",
        "parameters": [
          {
            "description": "The parent project of this connector.",
            "in": "path",
            "name": "connector.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The resource name / ID of the connector.",
            "in": "path",
            "name": "connector.connectorId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "createTime": {
                    "description": "Timestamp in UTC when the connector was created.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  },
                  "destinationDatasetConfig": {
                    "$ref": "#/components/schemas/DestinationDatasetConfig"
                  },
                  "displayName": {
                    "description": "The user-friendly name for this connector.",
                    "type": "string"
                  },
                  "externalSystemConfig": {
                    "$ref": "#/components/schemas/ExternalSystemConfig"
                  },
                  "sourceDatasetConfig": {
                    "$ref": "#/components/schemas/SourceDatasetConfig"
                  },
                  "updateTime": {
                    "description": "Timestamp in UTC of the last update to the connector. Changes with any\nmutable field update.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "required": [
                  "displayName"
                ],
                "title": "The desired updates to the connector. The connector is also specified\nwithin via the project_id & connector.id",
                "type": "object"
              }
            }
          },
          "description": "The desired updates to the connector. The connector is also specified\nwithin via the project_id & connector.id",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateConnectorResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Update a connector's metadata",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "connector"
      }
    },
    "/public/v1/projects/{pipeline.projectId}/pipelines/{pipeline.pipelineId}": {
      "patch": {
        "description": "Change display name or description of a pipeline.",
        "operationId": "PublicApiService_UpdatePipeline",
        "parameters": [
          {
            "description": "The parent project of this pipeline.",
            "in": "path",
            "name": "pipeline.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The resource name / ID of the pipeline.",
            "in": "path",
            "name": "pipeline.pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "createTime": {
                    "description": "The time at which the pipeline was created.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  },
                  "description": {
                    "description": "An optional description of the pipeline.",
                    "nullable": true,
                    "type": "string"
                  },
                  "destinationConnectorId": {
                    "description": "The ID of a connector which provides the data exported by this pipeline.\nThe connector must be CONNECTOR_SIDE_DESTINATION.",
                    "type": "string"
                  },
                  "displayName": {
                    "description": "The user-friendly name for this pipeline.",
                    "type": "string"
                  },
                  "sourceConnectorId": {
                    "description": "The ID of a connector which provides the data imported by this pipeline.\nThe connector must be CONNECTOR_SIDE_SOURCE.",
                    "type": "string"
                  },
                  "updateTime": {
                    "description": "The time at which the pipeline was last updated.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "required": [
                  "destinationConnectorId",
                  "displayName",
                  "sourceConnectorId"
                ],
                "title": "The desired updates to the pipeline. The pipeline is also specified within\nvia the project_id & pipeline_id",
                "type": "object"
              }
            }
          },
          "description": "The desired updates to the pipeline. The pipeline is also specified within\nvia the project_id & pipeline_id",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdatePipelineResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Update a pipeline's metadata",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "pipeline"
      }
    },
    "/public/v1/projects/{projectId}/connectors": {
      "get": {
        "description": "List the connectors for a specific project.  Returns results in reverse chronological order by connector creation time (most recently created first).",
        "operationId": "PublicApiService_ListConnectors",
        "parameters": [
          {
            "description": "The project containing the connectors to be listed.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of connectors to return. The service may return fewer\nthan this value. If unspecified, at most 100 connectors will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListConnectors` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListConnectors` must\nmatch the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListConnectorsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List Connectors",
        "tags": [
          "PublicApiService"
        ]
      },
      "post": {
        "description": "Create a new connector within a project",
        "operationId": "PublicApiService_CreateConnector",
        "parameters": [
          {
            "description": "The project in which the connector should be created.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The URI which validation requests will be sent to.",
            "in": "query",
            "name": "validationWebhookConfig.webhookUri",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of records to send in a single batch.  If not provided,\nthere is no limit.",
            "in": "query",
            "name": "validationWebhookConfig.maxRecordsPerBatch",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The maximum number of parallel requests to send.  Defaults to 1.",
            "in": "query",
            "name": "validationWebhookConfig.maxParallelRequests",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "The maximum size of a single request in bytes.  If not provided, there is\nno limit.",
            "in": "query",
            "name": "validationWebhookConfig.maxRequestSizeBytes",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Connector"
              }
            }
          },
          "description": "The connector to be created.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConnectorResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Create Connector",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "connector"
      }
    },
    "/public/v1/projects/{projectId}/connectors/{connectorId}": {
      "get": {
        "description": "Get a Connector by its ID.",
        "operationId": "PublicApiService_GetConnector",
        "parameters": [
          {
            "description": "The ID of the project that the connector should be fetched from.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the connector which should be fetched.",
            "in": "path",
            "name": "connectorId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetConnectorResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get Connector details",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/datasets": {
      "get": {
        "description": "Retrieve all datasets for a project",
        "operationId": "PublicApiService_GetDatasets",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get datasets",
        "tags": [
          "PublicApiService"
        ]
      },
      "post": {
        "description": "Create a new dataset for a given project",
        "operationId": "PublicApiService_CreateEmptyDataset",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEmptyDatasetBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateEmptyDatasetResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Create a dataset",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/datasets/queries/run": {
      "post": {
        "description": "Run a query and return the results. If there are more than 1,000 results, they will be returned as a list of buckets of up to 1,000 results. The schema will only be included on the first result object.",
        "operationId": "PublicApiService_RunDatasetsQuery",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RunDatasetsQueryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RunDatasetsQueryResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Run a query",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/datasets/queries/{queryId}": {
      "delete": {
        "operationId": "PublicApiService_DeleteSavedQuery",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "queryId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteSavedQueryResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Delete a query",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}": {
      "delete": {
        "operationId": "PublicApiService_DeleteDataset",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteDatasetResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Delete a dataset in a given project",
        "tags": [
          "PublicApiService"
        ]
      },
      "patch": {
        "description": "Change the name of an existing dataset",
        "operationId": "PublicApiService_UpdateDatasetName",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDatasetNameBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateDatasetNameResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Rename a dataset",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}/tables": {
      "get": {
        "description": "List the tables by name within a dataset",
        "operationId": "PublicApiService_GetDatasetTables",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetTablesResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List a dataset's tables",
        "tags": [
          "PublicApiService"
        ]
      },
      "post": {
        "description": "Create a new table within a dataset.",
        "operationId": "PublicApiService_CreateTable",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableDescriptor"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTableResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Create a table",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "tableDescriptor"
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}/tables/{tableName}": {
      "delete": {
        "operationId": "PublicApiService_DeleteTable",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tableName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteTableResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Delete a table",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}/tables/{tableName}/descriptor": {
      "get": {
        "operationId": "PublicApiService_GetDatasetTableDescriptor",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tableName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetTableDescriptorResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get a table's descriptor",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}/tables/{tableName}/rows": {
      "post": {
        "description": "Insert or upsert rows into a dataset table.",
        "operationId": "PublicApiService_InsertDatasetRows",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tableName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Write mode to use when inserting/upserting rows.\n\n - SQL_WRITE_MODE_INSERT: SQL_WRITE_MODE_INSERT\n - SQL_WRITE_MODE_UPSERT: SQL_WRITE_MODE_UPSERT",
            "in": "query",
            "name": "writeMode",
            "schema": {
              "default": "SQL_WRITE_MODE_INSERT",
              "enum": [
                "SQL_WRITE_MODE_INSERT",
                "SQL_WRITE_MODE_UPSERT"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewRows"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsertDatasetRowsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Insert dataset rows",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "rows"
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}/tables/{tableName}:duplicate": {
      "post": {
        "description": "Duplicate a table. Optionally copy the table's data as well. The new table can be created in the same or a different dataset or project",
        "operationId": "PublicApiService_DuplicateTable",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tableName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DuplicateTableBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DuplicateTableResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Duplicate a table",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/datasets/{datasetName}:duplicate": {
      "post": {
        "description": "Duplicate a dataset including all tables.  Data within the tables is NOT copied; empty tables with the same schema are created.",
        "operationId": "PublicApiService_DuplicateDataset",
        "parameters": [
          {
            "description": "Project ID of the project containing the dataset to duplicate.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Name of the dataset to duplicate.",
            "in": "path",
            "name": "datasetName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DuplicateDatasetBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DuplicateDatasetResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Duplicate a dataset",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/jobs/{jobId}": {
      "get": {
        "description": "Get the status of a job along with any associated re-run failed rows jobs.",
        "operationId": "PublicApiService_GetJobStatus",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "jobId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetJobStatusResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get job status",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/jobs/{jobId}/errors": {
      "get": {
        "description": "List the errors for a specific job.  Errors are grouped by row and are returned in order by row number.",
        "operationId": "PublicApiService_ListJobErrors",
        "parameters": [
          {
            "description": "The ID of the project that the job belongs to.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the job for which errors should be listed.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of rows to return. The service may return fewer than\nthis value.\nIf unspecified, at most 10,000 will be returned.\nThe maximum value is 100,000; values above 100,000 will be coerced to\n100,000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListJobErrorsRequest` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListJobErrorsRequest`\nmust match the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListJobErrorsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List Job Errors",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/pipelines": {
      "get": {
        "description": "Get a list of pipelines for a project.  Returns results in reverse chronological order by creation time (most recently created pipelines first).",
        "operationId": "PublicApiService_ListPipelines",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of pipelines to return. The service may return fewer\nthan this value.\nIf unspecified, at most 100 piplines will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListPipelines` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListPipelines` must\nmatch the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPipelinesResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List pipelines",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/pipelines/{pipelineId}": {
      "get": {
        "description": "Get a pipeline by ID.",
        "operationId": "PublicApiService_GetPipeline",
        "parameters": [
          {
            "description": "The ID of the project that the pipeline should be fetched from.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the pipeline which should be fetched.",
            "in": "path",
            "name": "pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPipelineResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get pipeline metadata",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/pipelines/{pipelineId}/jobs": {
      "get": {
        "description": "List the jobs for a specific pipeline.  Returns results in reverse chronological order by start time (most recent jobs first).",
        "operationId": "PublicApiService_ListPipelineJobs",
        "parameters": [
          {
            "description": "The project containing the pipeline's jobs to be listed.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The pipeline whose jobs should be listed.",
            "in": "path",
            "name": "pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of jobs to return. The service may return fewer than\nthis value.\nIf unspecified, at most 100 jobs will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListPipelineJobs` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListPipelineJobs` must\nmatch the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPipelineJobsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List Pipeline Jobs",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/pipelines/{pipelineId}/run": {
      "post": {
        "description": "Enqueue a job to run a pipeline.  This will start the read-side of the pipeline and once it completes, the write-side will be started.",
        "operationId": "PublicApiService_EnqueuePipelineSourceReadJob",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnqueuePipelineSourceReadJobBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnqueuePipelineSourceReadJobResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Enqueue a job to run a pipeline",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "body"
      }
    },
    "/public/v1/projects/{projectId}/pipelines/{pipelineId}/schedule": {
      "get": {
        "description": "Get a pipeline's schedule.",
        "operationId": "PublicApiService_GetSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The pipeline ID for the schedule.",
            "in": "path",
            "name": "pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetScheduleResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get Schedule",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/pipelines/{pipelineId}/transformer": {
      "get": {
        "description": "Get the state of the pipeline's transformer (including single cell edits, quick fix descriptors, and column mappings).",
        "operationId": "PublicApiService_GetPipelineTransformer",
        "parameters": [
          {
            "description": "The project in which the pipeline for the schedule is located.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The pipeline ID for the schedule to be updated.",
            "in": "path",
            "name": "pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPipelineTransformerResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get the transformer for a pipeline",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/uploaders": {
      "get": {
        "description": "List the uploaders within a project.  Returns results in reverse chronological order by creation time (most recently created uploaders first).",
        "operationId": "PublicApiService_ListUploaders",
        "parameters": [
          {
            "description": "The project containing the job's errors to be listed.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of uploaders to return. The service may return fewer\nthan this value. If unspecified, at most 100 uploaders will be returned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListUploaders` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListUploaders` must\nmatch the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUploadersResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List Uploaders",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/uploaders/{uploaderId}": {
      "delete": {
        "description": "Delete an existing uploader from a project",
        "operationId": "PublicApiService_DeleteUploader",
        "parameters": [
          {
            "description": "The ID of the project that the uploader should be deleted from.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the uploader which should be deleted.",
            "in": "path",
            "name": "uploaderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Delete Uploader",
        "tags": [
          "PublicApiService"
        ]
      },
      "get": {
        "description": "Get an uploader by its token",
        "operationId": "PublicApiService_GetUploader",
        "parameters": [
          {
            "description": "The ID of the project that the uploader should be fetched from.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the uploader which should be fetched.",
            "in": "path",
            "name": "uploaderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetUploaderResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Get Uploader Details",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{projectId}/uploaders/{uploaderId}/jobs": {
      "get": {
        "description": "List the jobs for a specific uploader. Returns results in reverse chronological order by start time (most recent jobs first).",
        "operationId": "PublicApiService_ListUploaderJobs",
        "parameters": [
          {
            "description": "The project containing the uploader's jobs to be listed.",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The ID of the uploader whose jobs should be listed.",
            "in": "path",
            "name": "uploaderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of jobs to return for the uploader. The service may\nreturn fewer than this value. If unspecified, at most 100 uploaders will be\nreturned. The maximum value is 1000; values above 1000 will be coerced to\n1000.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListUploaderJobs` call.\n\nWhen paginating, all other parameters provided to `ListUploaderJobsRequest`\nmust match the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUploaderJobsResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "List Uploader Jobs",
        "tags": [
          "PublicApiService"
        ]
      }
    },
    "/public/v1/projects/{schedule.projectId}/pipelines/{schedule.pipelineId}/schedule": {
      "patch": {
        "description": "Update an existing schedule within a project",
        "operationId": "PublicApiService_UpdateSchedule",
        "parameters": [
          {
            "description": "The project in which the pipeline for the schedule is located.",
            "in": "path",
            "name": "schedule.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The pipeline for the schedule.",
            "in": "path",
            "name": "schedule.pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "cronExpression": {
                    "description": "A cron expression specifying when the schedule should run.\n\nThe cron expression should be in standard crontab format like \"0 0,12 * *\n*\".\n\nFor details and examples, see:\nhttps://cloud.google.com/scheduler/docs/configuring/cron-job-schedules#cron_job_format",
                    "type": "string"
                  },
                  "timeZone": {
                    "description": "Specifies the time zone to be used in interpreting schedule. The value of\nthis field must be a time zone name from the tz database\n(https://en.wikipedia.org/wiki/Tz_database).\n\nNote that some time zones include a provision for daylight savings time.\nThe rules for daylight saving time are determined by the chosen tz. For UTC\nuse the string \"utc\". If a time zone is not specified, the default will be\nin UTC (also known as GMT).",
                    "nullable": true,
                    "type": "string"
                  }
                },
                "required": [
                  "cronExpression"
                ],
                "title": "The schedule to be updated.",
                "type": "object"
              }
            }
          },
          "description": "The schedule to be updated.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateScheduleResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Update Schedule",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "schedule"
      },
      "post": {
        "description": "Create a new schedule within a project",
        "operationId": "PublicApiService_CreateSchedule",
        "parameters": [
          {
            "description": "The project in which the pipeline for the schedule is located.",
            "in": "path",
            "name": "schedule.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The pipeline for the schedule.",
            "in": "path",
            "name": "schedule.pipelineId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "cronExpression": {
                    "description": "A cron expression specifying when the schedule should run.\n\nThe cron expression should be in standard crontab format like \"0 0,12 * *\n*\".\n\nFor details and examples, see:\nhttps://cloud.google.com/scheduler/docs/configuring/cron-job-schedules#cron_job_format",
                    "type": "string"
                  },
                  "timeZone": {
                    "description": "Specifies the time zone to be used in interpreting schedule. The value of\nthis field must be a time zone name from the tz database\n(https://en.wikipedia.org/wiki/Tz_database).\n\nNote that some time zones include a provision for daylight savings time.\nThe rules for daylight saving time are determined by the chosen tz. For UTC\nuse the string \"utc\". If a time zone is not specified, the default will be\nin UTC (also known as GMT).",
                    "nullable": true,
                    "type": "string"
                  }
                },
                "required": [
                  "cronExpression"
                ],
                "title": "The schedule to be created.",
                "type": "object"
              }
            }
          },
          "description": "The schedule to be created.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateScheduleResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Create Schedule",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "schedule"
      }
    },
    "/public/v1/projects/{uploader.projectId}/uploaders": {
      "post": {
        "description": "Create an uploader within a project for a given destination connector",
        "operationId": "PublicApiService_CreateUploader",
        "parameters": [
          {
            "description": "The parent project of this uploader.",
            "in": "path",
            "name": "uploader.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "counts": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/UploaderCounts"
                      }
                    ],
                    "description": "Information about the number of uploaded records and unique uploads for\nthis uploader in the past 30 days.",
                    "type": "object"
                  },
                  "createTime": {
                    "description": "Timestamp in UTC when the uploader was created.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  },
                  "description": {
                    "description": "The description of the uploader.",
                    "nullable": true,
                    "type": "string"
                  },
                  "destinationConnectorId": {
                    "description": "The ID of the destination connector that this uploader will send data to.\nThis is an immutable field. A value must be provided when creating the\nresource but any values provided when updating the resource will be\nignored.",
                    "type": "string"
                  },
                  "displayName": {
                    "description": "The display name of the uploader.",
                    "nullable": true,
                    "type": "string"
                  },
                  "updateTime": {
                    "description": "Timestamp in UTC of the last update to the uploader. Changes with any\nmutable field update. Does NOT change on newly run Jobs.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  },
                  "uploaderId": {
                    "description": "The resource name / ID of the uploader. This is sometimes referred\nto as the token in the context of embedded uploaders.",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "title": "The uploader to be created.",
                "type": "object"
              }
            }
          },
          "description": "The uploader to be created.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUploaderResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Create Uploader",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "uploader"
      }
    },
    "/public/v1/projects/{uploader.projectId}/uploaders/{uploader.uploaderId}": {
      "patch": {
        "description": "Update an existing uploader",
        "operationId": "PublicApiService_UpdateUploader",
        "parameters": [
          {
            "description": "The parent project of this uploader.",
            "in": "path",
            "name": "uploader.projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The resource name / ID of the uploader. This is sometimes referred\nto as the token in the context of embedded uploaders.",
            "in": "path",
            "name": "uploader.uploaderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "counts": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/UploaderCounts"
                      }
                    ],
                    "description": "Information about the number of uploaded records and unique uploads for\nthis uploader in the past 30 days.",
                    "type": "object"
                  },
                  "createTime": {
                    "description": "Timestamp in UTC when the uploader was created.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  },
                  "description": {
                    "description": "The description of the uploader.",
                    "nullable": true,
                    "type": "string"
                  },
                  "destinationConnectorId": {
                    "description": "The ID of the destination connector that this uploader will send data to.\nThis is an immutable field. A value must be provided when creating the\nresource but any values provided when updating the resource will be\nignored.",
                    "type": "string"
                  },
                  "displayName": {
                    "description": "The display name of the uploader.",
                    "nullable": true,
                    "type": "string"
                  },
                  "updateTime": {
                    "description": "Timestamp in UTC of the last update to the uploader. Changes with any\nmutable field update. Does NOT change on newly run Jobs.",
                    "format": "date-time",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "title": "The uploader to be updated.",
                "type": "object"
              }
            }
          },
          "description": "The uploader to be updated.",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUploaderResponse"
                }
              }
            },
            "description": "A successful response."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rpc.Status"
                }
              }
            },
            "description": "An unexpected error response."
          }
        },
        "summary": "Update uploader",
        "tags": [
          "PublicApiService"
        ],
        "x-codegen-request-body-name": "uploader"
      }
    }
  },
  "security": [
    {
      "bearer_auth": []
    }
  ],
  "servers": [
    {
      "url": "https://api.osmos.io"
    }
  ],
  "tags": [
    {
      "name": "PublicApiService"
    }
  ],
  "x-original-swagger-version": "2.0"
}