{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Create a new Sink.","properties":{"path":{"type":"object","properties":{"account_id":{"$ref":"#/definitions/cloudflare-pipelines_workers-pipelines-account-id"}},"required":["account_id"],"additionalProperties":false},"body":{"type":"object","properties":{"config":{"description":"Defines the configuration of the R2 Sink.","oneOf":[{"$ref":"#/definitions/cloudflare-pipelines_r2Table"},{"$ref":"#/definitions/cloudflare-pipelines_r2_data_catalogTable"}]},"format":{"$ref":"#/definitions/cloudflare-pipelines_SinkFormat"},"name":{"description":"Defines the name of the Sink.","type":"string","maxLength":128,"minLength":1,"examples":["my_sink"]},"schema":{"$ref":"#/definitions/cloudflare-pipelines_ConnectionSchema"},"type":{"description":"Specifies the type of sink.","type":"string","enum":["r2","r2_data_catalog","basin_catalog"],"examples":["r2"]}},"required":["name","type"]}},"required":["path"],"additionalProperties":false,"definitions":{"cloudflare-pipelines_workers-pipelines-account-id":{"description":"Specifies the public ID of the account.","type":"string","examples":["0123105f4ecef8ad9ca31a8372d0c353"]},"cloudflare-pipelines_r2Table":{"type":"object","properties":{"account_id":{"description":"Cloudflare Account ID for the bucket","type":"string","title":"Account ID"},"bucket":{"description":"R2 Bucket to write to","type":"string","title":"Bucket"},"credentials":{"type":"object","additionalProperties":false,"properties":{"access_key_id":{"description":"Cloudflare Account ID for the bucket","type":"string","title":"Access Key ID"},"secret_access_key":{"description":"Cloudflare Account ID for the bucket","type":"string","title":"Access Key ID"}},"required":["access_key_id","secret_access_key"],"title":"R2 Credentials"},"file_naming":{"description":"Controls filename prefix/suffix and strategy.","type":"object","additionalProperties":false,"properties":{"prefix":{"description":"The prefix to use in file name. i.e prefix-<uuid>.parquet","type":"string","title":"Filename Prefix"},"strategy":{"description":"Filename generation strategy.","type":"string","enum":["serial","uuid","uuid_v7","ulid"],"title":"Filename Strategy"},"suffix":{"description":"This will overwrite the default file suffix. i.e .parquet, use with caution","type":"string","title":"Filename Suffix"}},"title":"File Naming"},"jurisdiction":{"description":"Jurisdiction this bucket is hosted in","type":"string","title":"Jurisdiction"},"partitioning":{"description":"Data-layout partitioning for sinks.","type":"object","additionalProperties":false,"properties":{"time_pattern":{"description":"The pattern of the date string","type":"string","title":"Time Partition Pattern","examples":["year=%Y/month=%m/day=%d/hour=%H"]}},"title":"Partitioning Configuration"},"path":{"description":"Subpath within the bucket to write to","type":"string","title":"Path"},"rolling_policy":{"description":"Rolling policy for file sinks (when & why to close a file and open a new one).","type":"object","additionalProperties":false,"properties":{"file_size_bytes":{"description":"Files will be rolled after reaching this number of bytes","type":"integer","minimum":0,"title":"File Size"},"inactivity_seconds":{"description":"Number of seconds of inactivity to wait before rolling over to a new file","type":"integer","minimum":1,"title":"Inactivity Seconds"},"interval_seconds":{"description":"Number of seconds to wait before rolling over to a new file","type":"integer","minimum":1,"title":"Interval Seconds"}},"title":"File Rolling Policy"}},"additionalProperties":false,"required":["account_id","bucket","credentials"],"title":"R2 Sink"},"cloudflare-pipelines_r2_data_catalogTable":{"description":"R2 Data Catalog Sink","type":"object","properties":{"account_id":{"description":"Cloudflare Account ID","type":"string","format":"uri","examples":["6791973bbe876d621f9e557f891e90b3"]},"bucket":{"description":"The R2 Bucket that hosts this catalog","type":"string","examples":["my-bucket"]},"namespace":{"description":"Table namespace","type":"string","title":"Namespace"},"rolling_policy":{"description":"Rolling policy for file sinks (when & why to close a file and open a new one).","type":"object","additionalProperties":false,"properties":{"file_size_bytes":{"description":"Files will be rolled after reaching this number of bytes","type":"integer","minimum":0,"title":"File Size"},"inactivity_seconds":{"description":"Number of seconds of inactivity to wait before rolling over to a new file","type":"integer","minimum":1,"title":"Inactivity Seconds"},"interval_seconds":{"description":"Number of seconds to wait before rolling over to a new file","type":"integer","minimum":1,"title":"Interval Seconds"}},"title":"File Rolling Policy"},"table_name":{"description":"Table name","type":"string","title":"Table Name"},"token":{"description":"Authentication token","type":"string","examples":["\"asdfkj2h34kjhkj\""]}},"additionalProperties":false,"required":["account_id","bucket","token","table_name"],"title":"R2DataCatalogSinkTable"},"cloudflare-pipelines_SinkFormat":{"description":"Defines the output data format of a sink.","oneOf":[{"$ref":"#/definitions/cloudflare-pipelines_SinkJsonFormat"},{"$ref":"#/definitions/cloudflare-pipelines_SinkParquetFormat"}]},"cloudflare-pipelines_ConnectionSchema":{"description":"Defines the schema of the events in the data stream.","type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/definitions/cloudflare-pipelines_SourceField"}},"inferred":{"type":["boolean","null"]}}},"cloudflare-pipelines_SinkJsonFormat":{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_JsonFormat"},{"properties":{"compression":{"$ref":"#/definitions/cloudflare-pipelines_JsonCompression"},"type":{"type":"string","enum":["json"]}},"required":["type"],"type":"object"}],"title":"Json"},"cloudflare-pipelines_SinkParquetFormat":{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_ParquetFormat"},{"properties":{"type":{"type":"string","enum":["parquet"]}},"required":["type"],"type":"object"}],"title":"Parquet"},"cloudflare-pipelines_SourceField":{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_FieldType"},{"properties":{"metadata_key":{"type":["string","null"]},"name":{"type":"string"},"required":{"type":"boolean"},"sql_name":{"type":"string"}},"required":["name"],"type":"object"}]},"cloudflare-pipelines_JsonFormat":{"type":"object","properties":{"decimal_encoding":{"$ref":"#/definitions/cloudflare-pipelines_DecimalEncoding"},"timestamp_format":{"$ref":"#/definitions/cloudflare-pipelines_TimestampFormat"},"unstructured":{"type":"boolean"}}},"cloudflare-pipelines_JsonCompression":{"description":"Specifies the compression applied to JSON sink output.","type":"string","default":"uncompressed","enum":["uncompressed","gzip"]},"cloudflare-pipelines_ParquetFormat":{"type":"object","properties":{"compression":{"$ref":"#/definitions/cloudflare-pipelines_ParquetCompression"},"row_group_bytes":{"type":["integer","null"],"minimum":0}}},"cloudflare-pipelines_FieldType":{"oneOf":[{"properties":{"type":{"type":"string","enum":["int32"]}},"required":["type"],"title":"Int32","type":"object"},{"properties":{"type":{"type":"string","enum":["int64"]}},"required":["type"],"title":"Int64","type":"object"},{"properties":{"type":{"type":"string","enum":["float32"]}},"required":["type"],"title":"Float32","type":"object"},{"properties":{"type":{"type":"string","enum":["float64"]}},"required":["type"],"title":"Float64","type":"object"},{"properties":{"type":{"type":"string","enum":["bool"]}},"required":["type"],"title":"Bool","type":"object"},{"properties":{"type":{"type":"string","enum":["string"]}},"required":["type"],"title":"String","type":"object"},{"properties":{"type":{"type":"string","enum":["binary"]}},"required":["type"],"title":"Binary","type":"object"},{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_TimestampField"},{"properties":{"type":{"type":"string","enum":["timestamp"]}},"required":["type"],"type":"object"}],"title":"Timestamp"},{"properties":{"type":{"type":"string","enum":["json"]}},"required":["type"],"title":"Json","type":"object"},{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_StructField"},{"properties":{"type":{"type":"string","enum":["struct"]}},"required":["type"],"type":"object"}],"title":"Struct"},{"allOf":[{"$ref":"#/definitions/cloudflare-pipelines_ListField"},{"properties":{"type":{"type":"string","enum":["list"]}},"required":["type"],"type":"object"}],"title":"List"}]},"cloudflare-pipelines_DecimalEncoding":{"type":"string","enum":["number","string","bytes"]},"cloudflare-pipelines_TimestampFormat":{"type":"string","enum":["rfc3339","unix_millis"]},"cloudflare-pipelines_ParquetCompression":{"type":"string","enum":["uncompressed","snappy","gzip","zstd","lz4"]},"cloudflare-pipelines_TimestampField":{"type":"object","properties":{"unit":{"$ref":"#/definitions/cloudflare-pipelines_TimestampUnit"}}},"cloudflare-pipelines_StructField":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/definitions/cloudflare-pipelines_SourceField"}},"name":{"type":["string","null"]}},"required":["fields"]},"cloudflare-pipelines_ListField":{"type":"object","properties":{"items":{"$ref":"#/definitions/cloudflare-pipelines_SourceField"}},"required":["items"]},"cloudflare-pipelines_TimestampUnit":{"type":"string","enum":["second","millisecond","microsecond","nanosecond"]}}},"name":"Create Sink","id":"cloudflare.postv4accountsbyaccount_idpipelinesv1sinks","example":{"path":{"account_id":"0123105f4ecef8ad9ca31a8372d0c353"}},"maxRequests":1,"summary":false}}